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 missed another match point in what was the final game before cracking a forehand winner to get over the line.
Nadal, who is going for a 13th title, beat Argentina's Diego Schwartzman.
Now Djokovic will meet Nadal for the 56th time in their careers - no two men have played each other more - and will contest their ninth Grand Slam final against each other.