With the victory, Muguruza will return to the top five of the WTA rankings and be one of the top four seeds at Roland Garros.
Third-seeded Spaniard Garbine Muguruza defeated Venus Williams 6-2, 3-6, 6-2 to book a spot in the Italian Open tennis semi-finals for a second straight year.
The defending French Open champion, who recorded her first victory over the elder Williams sister in four matches, will now try to reach her first final since last year's Roland Garros when she takes on Ukrainian Elina Svitolina on Saturday at this elite clay-court event, reports Efe.
Muguruza raced to a 4-0 lead by breaking Williams in her first two service games and then comfortably wrapped up the first set four games later.
But after making just eight unforced errors in the opener, the Spaniard committed 20 in losing the second set and then also dropped her serve at the start of the third to fall behind 1-0.
Muguruza found her game in time though, charging back against the ninth-seeded veteran to win six of the last seven games and take the match in just under one hour and 45 minutes.
With the victory, Muguruza will return to the top five of the WTA rankings and be one of the top four seeds at Roland Garros, which gets under way on May 28.
Earlier on Friday, the eighth-seeded Svitolina upset second-seeded Czech Karolina Pliskova 6-2, 7-6 (11-9) to reach the Italian Open semi-finals for the first time in her career.
The other women's semi-final at this Premier 5 event will pit sixth-seeded Romanian Simona Halep, winner of last week's Madrid Open, against the Netherlands' Kiki Bertens.
Halep scored a 6-2, 6-4 victory on Friday over 21-year-old Estonian Anett Kontaveit, who had upset top-seeded German Angelique Kerber in the second round, while Bertens cruised past Australian qualifier Daria Gavrilova 6-3, 6-3.