World number one Novak Djokovic defended resolutely to outlast big-hitting Greek Stefanos Tsitsipas 6-3 6-2 5-7 4-6 6-1 in an enthralling contest.
In the semi-final match on Friday in Paris, the Serb won to advance to the final of the French Open.
The Serb will meet 12-times French Open champion Rafael Nadal, seeded second, in another mouth-watering clash on Sunday.
The Spaniard is also bidding to equal Roger Federer’s record men’s haul of 20 Grand Slam singles titles.
Djokovic, whose 2016 Roland Garros triumph features among his 17 major titles, had a match point in the third set.
But he saw the 22-year-old Tsitsipas fight back spectacularly to level the match at two sets apiece.
Tsitsipas, seeded fifth, ran out of steam in the deciding set.
But he saved another match-point before the 33-year-old sealed the win with a crushing service return in three hours and 54 minutes on Court Philippe Chatrier.