Maria Sharapova will play first-timer Simona Halep in the French Open final on Saturday.
Sharapova reached the final at Roland Garros for the third successive year with a 4-6 7-5 6-2 victory over Eugenie Bouchard while Halep defeated Andrea Petkovic 6-2 7-6 (7/4).
Fourth-seed Halep has been the highest-ranked player left in the tournament for some time but she had reached just one grand slam quarter-final before.
Now she is through to the final without dropping a set and will climb to world number three on Monday.
It has been an incredible year for both Halep and Petkovic.
Halep was ranked 57th and lost in the first round at Roland Garros 12 months ago while Petkovic was defeated in qualifying and considered quitting tennis as she tried to battle back from a series of injuries.
The German appeared to be the more nervous of the two and Halep won the first set in just 28 minutes, her brand of graceful, intelligent tennis too much for the wayward Petkovic.
She improved significantly in the second set but let an early break slip away and Halep was the stronger in the tie-break.
Sharapova, who won the title in 2012 before losing to Serena Williams 12 months ago, maintained her remarkable record in three-set matches, winning a 19th consecutive deciding set on clay .
Bouchard, who was playing in her second straight grand slam semi-final, had lost comfortably to Sharapova in the second round last year and demonstrated again the huge strides she has made.
She possesses the same steely-eyed determination as Sharapova and her mental strength is remarkable for a 20-year-old.
The Canadian said after beating Angelique Kerber in the fourth round that she did not have a best friend in tennis, adding: "I don't think the tennis tour is the place to have friends. For me, it's all competition."
It was a sentence that could well have been written by Sharapova so it was no surprise that this was not a match for the faint-hearted.
Bouchard has improved significantly since making the last four at the Australian Open in January, hitting the ball a lot more aggressively, and it was she who struck first with a break for 2-1.
Sharapova fought back to level at 4-4 but Bouchard forged ahead again immediately and held to take the set, saving a break point with the gutsiest of backhand winners onto the line.
Sharapova had recovered from a set down in both her last two matches against Sam Stosur and Garbine Muguruza and set about doing the same, moving into a 5-2 lead.
But the Russian's serve, never something to be relied upon, was having an off day and, serving for the set, she twice double-faulted on set point.
There was also a second-serve ace on a break point for good measure but on her third chance Bouchard pounced.
The 20-year-old was unable to resist when Sharapova broke again at 5-5, though, and this time the seventh seed clinched the set when Bouchard netted a forehand.
Bouchard had never lost a grand slam match in which she had won the first set before but the sense was Sharapova's prowess in deciding sets would be the crucial factor.
The Russian moved ahead at 3-1, and for the first time Bouchard was making bad mistakes on the big points.
She held for 4-2, saving two break points, but in the next game missed a routine forehand and a volley as Sharapova moved to within one game of victory.
Bouchard fought on, saving four match points in terrific style, but there was nothing she could do when a Sharapova forehand fizzed off the baseline after two hours and 27 minutes.