Rafael Nadal gained revenge on Diego Schwartzman to reach his 13th French Open final.
Schwartzman had managed his first victory over Nadal in 10 meetings at the Italian Open in Rome last month but a repeat never looked on the cards in the Spaniard's fortress.
Nadal's 6-3 6-3 7-6 (0) victory made it 99 wins and only two defeats at Roland Garros and he will challenge for a 13th title against Novak Djokovic tomorrow.
Victory would give him a 20th grand slam crown, drawing him level with Roger Federer at the top of the all-time list, and few would bet against him now.
He was relentless for two and a half sets. From 4-2, Nadal's grip on the match loosened and he had to save three break points at 5-5 before clinching the match on a tie-break to ensure he reached the final in Paris without dropping a set for the sixth time.
Nadal will face Djokovic for the 56th time in the final after the world number one withstood a spirited fightback to beat Stefanos Tsitsipas in five sets.
Djokovic looked to be easing to a relatively straightforward victory when he served for the match at 5-4 in the third set, only for Tsitsipas to save a match point and turn the contest completely around.
But Djokovic, who showed no signs of the neck and arm problems that bothered him in his quarter-final win over Pablo Carreno Busta, did not panic and reasserted control in the decider to win 6-3 6-2 5-7 4-6 6-1 after three hours and 54 minutes.