Second seed Maria Sharapova twice came from match point down to beat Patty Schnyder in a gruelling three-set win in the fourth round of the French Open.
Sharapova has never been beyond the last eight at Roland Garros
Three times in the final set, Schynder only needed to win her service game to claim victory but each time Sharapova, battling a shoulder injury, recovered.
The 20-year-old Russian finally clinched a 3-6 6-4 9-7 victory after a two-and-a-half-hour marathon.
Sharapova now faces fellow Russian Anna Chakvetadze for a semi-final place.
Sharapova, who was also unconvincing in her win over Alla Kudryavtseva on Saturday, played poorly for prolonged patches in the match.
But her sheer determination kept her in the contest and eventually saw her through after an epic 77-minute final set.
After a flurry of service breaks, Sharapova finally held serve at 7-7 and then broke the Swiss player for victory.
It was the 10th time she had breached Schnyder's serve in the match, while losing her own nine times.
"It was very exciting and even if I had lost the match I would have done an amazing job of fighting and getting myself back into the match," said Sharapova.
"I figured I wasn't going to beat her by being a clay-court player so I just started coming in and going for my shots.
"I figured if I was going to lose this match I would lose it on my own terms."
Sharapova, who was warned by the umpire for taking too much time between points in the final game, was booed by sections of the crowd on the Suzanne Lenglen court for what they perceived as gamesmanship by the Russian.
"It's pretty hard being a tennis player and Mother Theresa at the same time and that's just the way it is," she commented.