Novak Djokovic will face Rafael Nadal in Sunday's French Open final after battling past Stefanos Tsitsipas in five sets.
With the upper-body issues that hampered his quarter-final win over Pablo Carreno Busta apparently behind him, the world number one still had to dig deep in Friday's semi-final to see off Tsitsipas, who had won 27 matches this year and had looked imperious against Andrey Rublev in the previous round.
Tsitsipas rallied from match point down in the third set to force Djokovic to go the distance in his quest to reach a first grand slam final, but the 17-time major winner wrestled momentum back to claim a 6-3 6-2 5-7 4-6 6-1 victory.
The 33-year-old, who is 216-1 in grand slam matches after winning the first two sets, eventually completed the job after three hours and 54 minutes as he set up a meeting with old foe Nadal in what will be his 27th major final.
Djokovic saved four break points in the opening game before moving 4-1 ahead and again held off a stern challenge on serve to make it 5-2 on Court Philippe-Chatrier.
The 2016 champion's drop shot appeared on point, with two more in game nine helping him close out the opening set despite one or two loose groundstrokes.
Tsitsipas was arguably playing the better tennis by the early stages of the second set, but it was Djokovic who was producing the goods at the key points. Some remarkable defensive work and a brilliant cross-court backhand winner saw him set up just his second break point after trailing 0-40, and he took it when Tsitsipas skied a forehand after a net cord.
He consolidated to move 4-2 ahead and got the double break when Tsitsipas swung a forehand into the tramlines, serving out the set with back-to-back aces to assume control of the match.
Djokovic had match point on serve at 5-4 in the third but Tsitsipas suddenly struck back, at last getting a break of his own and then snatching the set with a ferocious forehand that clipped the baseline.
By now, it was Tsitsipas who was under siege on serve and Djokovic who could not make the breakthrough. He saw 10 break points come and go before sending a drop shot into the net at set point down as the contest entered an unlikely decider.
Djokovic at last broke the resistance early in the fifth, a dead-eyed drop shot and then a strangely errant service game from Tsitsipas giving the Serbian a double break. A third match point proved enough for the number one seed, a downcast Tsitsipas watching a second serve slapped beyond his reach.