The win extends the Pole’s winning streak to 10 matches (12-2 on clay for the season) and was her 36th win in 40 matches on tour this year.
Swiatek, a four-time Grand Slam champion, will face the winner of the match between American Coco Gauff, the No 3 seed, and Chinese Qinwen Zheng, the No 7 seed, for a place in the final. It will be her third semi-final in Rome and her 16h career semi-final at the WTA 1000 level.
Earlier in the tournament, the 22-year-old Pole defeated American qualifier Bernarda Pera (6-0, 6-2), Kazakh Yulia Putintseva (6-3, 6-4) and German Angelique Kerber (7-5, 6-3).
The win also marked her 75th career win on clay – taking her career win-loss record on the surface to 75-10.
Keys, ranked No 16, won against Colombian Camila Osorio (6-0, 4-6, 6-3), Brazilian Beatriz Haddad Maia, the No 12 seed (6-4, 4-6, 6-3) and Romanian Sorana Cirstea, the No 28 seed (6-2, 6-1) in the previous rounds of the Rome tournament.
Rome WTA 1000, other quarter-final results (Foro Italico, clay, USD 5,509,771):
- Jelena Ostapenko vs. Aryna Sabalenka
- Victoria Azarenka vs. Danielle Collins
- Coco Gauff vs. Qinwen Zheng