Top seed Novak Djokovic withstood a gutsy fightback from Greek fifth seed Stefanos Tsitsipas to set up a French Open final against long-time rival Rafael Nadal on Sunday.
Djokovic, 33, missed a match point in the third set before eventually winning 6-3 6-2 5-7 4-6 6-1 at Roland Garros.
The Serb could not take a second match point in what was the final game before cracking a forehand winner to seal it.
Nadal, who is going for a 13th title, beat Argentina's Diego Schwartzman.
The top two seeds in the men's draw will face each other for the 56th time in their careers - no two men have played each other more - and the ninth time in a Grand Slam final.
The match could also be pivotal in the long-running battle between Djokovic, Nadal and Swiss rival Roger Federer in determining which man finishes with the most Grand Slam titles.
If Nadal lifts the Coupe des Mousquetaires trophy yet again, it will see him equal Federer's all-time leading record of 20 men's majors.