You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
The 13-time Roland Garros champion, beaten by the world number one in the semi-finals here last year, arrived in Paris on the back of two injuries that had hampered his preparations.
Having already survived a five-set thriller against Felix Auger Aliassime in the previous round, the Spaniard, who has only lost three times at the French Open since his first campaign in 2005, knows every inch of the immense court Philippe Chatrier and Djokovic paid for the reminder.
The Serbian is still stuck at 20 Grand Slam titles after being barred from taking part in the Australian Open by local authorities over his refusal to get vaccinated against Covid-19 - a major that Nadal won.
On the day teenager Carlos Alcaraz, who has been widely tipped as his successor, was knocked out, Nadal threw the punches and had defending champion Djokovic on the ropes in a high octane start under the spotlights.
Djokovic fought back in an 88-minute second set but the 35-year-old Nadal, backed by a partisan crowd, found the resources to end it in four sets despite being a break down in the fourth and set up a meeting with German third seed Alexander Zverev for a place in Sunday's final.
Zverev beat Alcaraz in four sets earlier.
"It's a very emotional moment for me. Thank you everyone. It's incredible, the support I get from you. Everyone knows how important it is for me to play here. It's the most important tournament of my career," Nadal said on court after the four-hour-12-minute tug of war.
"Very tough match. Djokovic is one of the best players in history. Playing against him is always a big challenge. Against him there's only one way to play - at your best level from the first point to the last.
"And today was a magic night for me. Unexpected level from me."
A 10-minute opening game, won by Nadal on Djokovic's serve, set the tone of the clash of the heavyweights.
"Rafa, Rafa!" the crowd chanted.
He broke a second time with a trademark forehand winner down the line before wrapping up the first set on serve when Djokovic made his ninth unforced error.
The Serbian fell 3-0 behind in the second, but a poorly-executed drop shot by Nadal allowed him to pull a break back.
A smile appeared on Djokovic's face. In a key 18-minute sixth game, Djokovic broke again on his fifth attempt when Nadal's backhand went wide.
He faced a break point in the following game but Nadal was playing too short and the Serbian bagged his fourth consecutive gale in a spectacular turnaround.
Nadal just managed to hold for 4-4 but cracked on serve at 5-4 as Djokovic levelled the match.
The Mallorcan, however, started the third set in similar fashion as the first, racing to a 4-1 lead and wrapping it up on yet another unforced error from Djokovic.
In a see-saw contest, Djokovic regained the upper hand to open a 3-0 lead in the fourth set but Nadal would not go into a fifth set, breaking back for 4-5 before forcing a tiebreak in which he gave his opponent no chance.