The world No.1 had match point in the third set for a straight-sets win over Stefanos Tsitsipas, but missed it and had to go the distance before reaching the final for a fifth time.
Djokovic taken the distance by Tsitsipas, books title showdown with Nadal
World No.1 reaches fifth career Roland-Garros final with a tight five-set win over the young Greek.
His 6-3, 6-2, 5-7, 4-6, 6-1 victory saw him pegged back by a surging Tsitsipas but as has been the case so many times in his career, Djokovic held firm when it mattered and ran away with the fifth set as his opponent, affected by a niggling injury, fatigued.
"I stayed calm and stayed positive on the surface, even if inside it was very different thing,” Djokovic said. “I was solid and consistent at the most important moments and I was happy for that.
“Congratulations to him for a great battle. It’s a shame he was obviously tired. But the battle was not easy. I hope he continues in a positive direction in his career.”
In a career in which he has so often proven to be the biggest fighter of all, it was another example of Djokovic’s ability to stay calm under the most intense of pressure, and produce the goods when he needs to.
Though he led by two sets to love, Djokovic will have known that the scoreline was slightly misleading, Tsitsipas having forced numerous chances to break serve only to falter, mostly due to the brilliance of the Serb, all of which left the Greek rattled.
When he broke to lead 5-4 in the third set, and reached match point on serve, it looked like Djokovic would match Nadal in winning his semi-final in straight sets. But after putting a backhand wide, the match began to turn.
Suddenly, Djokovic looked shaky and Tsitsipas, finding the range on his serve, began to unload on his forehand. When Djokovic put a forehand long, the Greek broke back and then after holding for 6-5, he forced set point. Djokovic saved it with a drive volley but Tsitsipas forced another and this time, a stunning forehand up the line gave him the set.
After a bathroom break, Tsitsipas saved a break point in the opening game of the fourth and then, when Djokovic went wide, he forced a break of the Djokovic serve to lead 2-1.
With the help of an incredible angle on a backhand smash, Djokovic broke back and the pair then began to produce some startling rallies.
Tsitispas began to get his forehand into play and started to wrong-foot Djokovic, sending the ball behind him whenever he had the chance.
The pair held serve to 4-4 and though Djokovic had a break point to lead 5-4, Tsitsipas saved it with an ace, before holding to move ahead again.
Tsitsipas asked the umpire if he could use the bathroom, saying it was an emergency, but was told no and the pair continued. Djokovic led 40-15 but a good Tsitsipas drop shot and a mistake from Djokovic took it back to deuce. Another error from Djokovic, this time on the backhand, handed Tsitsipas break point and a poor drop shot handed him the set.
But the drop shot had been a huge weapon for Djokovic throughout the match and as Tsitsipas, who had earlier consulted the physio and doctor, began to tire, the 17-times Grand Slam champion took control.
A brilliant drop shot, perhaps his best of the match, gave Djokovic the break for 2-1 and from then on, it was all one-way traffic, Tsitsipas unable to take the match to him in the way he had in the third and fourth sets.
Under huge pressure at 3-1, Tsitsipas double-faulted to give Djokovic the second break and after an easy hold, he broke again, clinching victory on his third match point with a flashing forehand return winner.
And so, for the 56th time in their careers and the eighth time at Roland-Garros, Djokovic will meet Nadal in Sunday's final.
The 12-time champion Nadal has won seven of the eight meetings and Djokovic admitted the Spaniard will be favourite on Sunday.
“It’s his home,” Djokovic said. “And with all the titles he’s won. But I remember I beat him in the quarter-finals in 2015. I hope to recover. It’s the biggest challenge, perhaps in sport, to play Nadal here at Roland-Garros but I am motivated to win.”
If Nadal wins on Sunday, he will join Roger Federer on 20 Grand Slam titles at the top of the men's all-time list. If Djokovic wins, he will move to 18, one behind Nadal and two behind Federer.
Something has to give. Game on.