Venus Williams reeled off nine of the last 10 games as she fought back to beat Jelena Jankovic and reach the last four of the Italian Open on Friday.
Venus Williams is aiming to reach her first final since last July
The 1999 champion was in danger of slipping a set and 5-3 down but held on, coming back to win 5-7 6-4 6-1.
She will next play Martina Hingis, who beat Flavia Pennetta 6-3 6-1.
Earlier, Dinara Safina thrashed fifth seed Elena Dementieva to set up a clash with another Russian, seventh seed Svetlana Kuznetsova, in the last four.
Dementieva served seven double faults and won only 30% of points on her second serve in a 6-1 6-1 defeat to Safina.
"The score was easy, but I know what she doesn't like and I played my game today," said 16th seed Safina, who beat Kim Clijsters on Thursday.
Kuznetsova survived a match point before beating Italian qualifier Romina Oprandi 6-4 5-7 7-6 (7-4).
And Kuznetsova admitted she had struggled against an unfamiliar opponent.
"It was very tough to play her," said the former US Open champion.
"I'd never played her before and I wasn't playing well. I'm not happy with my game today. I'm just happy to win but I had to fight until the end."
Williams will take on Hingis for the 21st time, with both players on 10 wins, but she admitted that fatigue is taking its toll.
"It was tough, but I'm happy to go through," said Williams. "I had difficulties in the first set, too many errors.
"But in the third, I drew encouragement from my father. He kept telling me to go for it."