American Jennifer Capriati reached the last four of the French Open after beating compatriot Serena Williams 6-3 2-6 6-3 in Tuesday's quarter-finals.
Despite losing the second set, Capriati was guilty of fewer unforced errors than Williams during their encounter.
However, it was not until midway in the deciding set when the match swung in favour of Capriati after Williams appeared to pick up a hamstring injury.
Capriati now faces Anastasia Myskina, who beat Williams' sister Venus.
Capriati, the 2001 champion, was delighted to have got the better of a scrappy match which was played in damp conditions.
"It's about time, frankly, that I won one of these matches," she said.
"It's been a struggle for a long time to get through, because what would always happen was the same pattern - I'd be winning and then just let it slip away and not be
"It wasn't the greatest quality match. We were both nervous but I just played a little bit
better than she did."
Williams, who only recently returned to the tour after an eight-month lay-off following knee surgery, committed 45 unforced errors and lost her serve five times.
"I had a bad day with the serve," said Williams.
"I don't think I got any first serves in today, so it's hard to win when you can't get a first serve in - or a ball.
"She definitely comes with a different strategy every time I play her so she's definitely gotten better.
"This year I really made it tough on myself by not performing and making a lot of errors and by basically not doing anything on a professional level. I was an amateur today."
Williams was out of sorts in the first set with a double fault handing Capriati a break point in the third game which she converted for 2-1 when her opponent hit wide.
Williams held and broke back for 3-3, but again lost her serve to trail 4-3 when rain sent the players scurrying for cover.
Back on court after a 10-minute break, Capriati wrapped up the set in 35 minutes by breaking Williams' serve to love.
Williams fought back in the second set, taking a 4-0 lead with a double break, but rain halted proceedings again with the second seed leading 5-1.
After a 45-minute break, Capriati returned to hold serve but Williams served out the set to love with her opponent failing to hit a single winner in the set.
But it soon became evident that Williams was struggling with a thigh problem, and Capriati grabbed a break in the fourth game for a 3-1 lead when her opponent hit long.
Williams fought back to 3-3 but Capriati took control again in the eighth game.
The 2001 champion had to win match point twice after a moment of controversy.
Capriati was already celebrating after Williams failed to return a shot that skipped off the baseline.
However, the shot was called out, with umpire Pascal Maria overruling the call and ordering the point to be replayed.
But given a second chance, Williams netted again and Capriati resumed her