Novak Djokovic will face Rafael Nadal for the 56th time in the final of the French Open on Sunday after withstanding a spirited Stefanos Tsitsipas fightback.
Djokovic looked to be easing to a 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.
The comeback was no more than Tsitsipas deserved after two sets that were nowhere near as one-sided as the scoreline suggests.
The 22-year-old Greek had five break points in the first set - four in the opening game - to Djokovic's one, but it was the top seed who came out on top.
Tsitsipas looked the better player in the early stages of the second, too, only for Djokovic to withstand the pressure and reel off five games in a row.
The Serbian let out a mighty roar when he broke for 5-4 in the third but Tsitsipas - who won only six games against Nadal in his first slam semi-final in Australia last year - was not finished.
A missed backhand down the line on match point from Djokovic gave Tsitsipas a lifeline and he finally converted on his 11th break point then seized the momentum to make it three games in a row, cleaning the baseline with a forehand winner on set point.
When Tsitsipas capitalised on some loose Djokovic errors to break for 2-0 in the fourth set, it appeared less a plot twist and more a full-blown handbrake turn.
Djokovic broke straight back and had nine further chances to break serve but now it was his turn to feel the frustration as Tsitsipas saved his best for the most important moments.
When the pressure switched to Djokovic, he was found wanting, the 2016 Roland Garros champion dumping an ill-advised drop shot into the net to send the contest to an unlikely decider.
The only time Tsitsipas had come back from two sets down to win was in the first round last week against Jaume Munar, while Djokovic's only defeat from two sets up in a completed match came in Paris against Jurgen Melzer 10 years ago.
If Djokovic was concerned, he did not show it, and a break for 2-1 turned out to the beginning of the end as a weary Tsitsipas found nothing left in the tank.
So, at the end of an unpredictable fortnight, we are left once again with the world's two best players ready to do battle on the biggest stage - and the stakes could not be higher.
Victory for Nadal would bring him a 20th grand slam title and see him draw level with Roger Federer at the top of the all-time list of men's champions.
A Djokovic win, meanwhile, would take him to 18 and make him the first man in the Open era to lift every slam trophy at least twice.
Djokovic leads the head-to-head 29-26 but Nadal has won six of their seven previous matches at Roland Garros, including both finals, and is bidding for his 13th title on the Paris clay.