Russian seventh seed Svetlana Kuznetsova held off a bold challenge by Serena Willams to beat the American world number two 7-6, 5-7, 7-5 and reach the French Open semi-finals on Wednesday.
The 2006 Roland Garros runner-up will face Australian Samantha Stosur, seeded 30th, for a place in Saturday's final.
Stosur booked her place in the semi-finals with a 6-1, 6-3 victory over Romanian high school student Sorana Cirstea
Kuznetsova, the only player to beat world number one Dinara Safina on clay this season, clinched the opening set by winning the tiebreak 7-3.
Williams, the 2002 champion, went 4-2, 40-30 down in the second before rediscovering her touch to level the contest.
Kuznetsova rallied from 3-1 down in the decider and wrapped up victory on Serena's serve on her third match point after two hours 47 minutes.