Maria Sharapova battled into her fourth successive French Open semi-final and fifth of her career with a 1-6, 7-5, 6-1 win over rising Spaniard Garbine Muguruza on Tuesday.
The seventh-seeded Russian, who was the 2012 champion and runner-up to Serena Williams last year, goes on to face Canada's Eugenie Bouchard for a place in Saturday's final.
But the four-time major winner and former world number one was given an almighty fright by the 20-year-old Muguruza who had knocked out Williams in the second round.
The world number 35, playing in her first quarter-final at a major, was a set and 5-4 ahead in the second set before Sharapova dug deep into her famed reserves of fighting spirit to win through after 2hr 06min on court.
"There was little I could do in the first set as Garbine was playing so well," said Sharapova who had also dropped the first set of her fourth round tie against Samantha Stosur.
"I needed to pick up my energy and start moving my feet. It was tough losing the final last year and it has given me greater motivation to go one step further this time."
Playing in her 21st Grand Slam quarter-final, Sharapova needed a win to retain her top 10 ranking.
But Muguruza showed no signs, racing into a 4-0 lead on the back of two breaks before a sluggish Sharapova opened her account.
The only time the confident Venezuela-born, Barcelona resident was under threat was when she fought off the only break point she faced in the sixth game.
Sharapova was made to pay for her failure to crack the 1.82m (6ft) Muguruza when the Spaniard broke for a third time in the seventh game to take the opener after just 27 minutes.
The Russian star was not helped by 13 unforced errors in the muggy conditions but Muguruza was worthy of her lead, finding the angles and the corners and not intimidated by having to volley at the net.
Sharapova, in desperation, even had to play one return with her left hand to stay in a rally.
Predictably, the 27-year-old eventually found her range, breaking for the first time in the second set for a 2-1 lead which could have been 4-1 had the Russian converted another break point in the fifth game.
But Sharapova double-faulted twice to hand the break back with the unflustered Spaniard consolidating for a 4-3 lead.
The Russian then stepped up the intensity and turned up the volume to break for a 6-5 lead and even the contest in the 12th game.
Sharapova then raced through the final set, fighting off four break points in a marathon 10-minute fourth game for a 4-1 lead on her way to sealing victory.
Muguruza ended with 52 unforced errors, half of which came in the third set. Sharapova finished with 40 errors but just five of those came in the one-sided decider.