The scores of the epic showdown between the tournament's first and third seeds were 3-6, 7-6 (7-5), 7-6 (11-9), with Nadal saving three match points in the deciding third set.
The match, which lasted just over four hours, is believed to be the longest three-set men's battle in the Open Era (since 1968).
"What I'm worried about is recovering in time and playing well (in Sunday's final)," Nadal told the BBC. "If I don't, I won't win."
He sustained a right knee injury while improving his record to 150-6 on red clay since the 2005 season.
Djokovic was playing in a semifinal for the fourth straight time, but dropped to 37-11 overall this season and 4-14 lifetime against Nadal.
In the second semifinal, No. 2 seed Roger Federer of Switzerland was a 6-3 6-4 winner over fifth-seeded Juan Martin del Potro of Argentina.
Federer, once ranked No. 1 in men's tennis, has not beaten Nadal since a semifinal round win during the 2007 Tennis Masters Cup, and hasn't won a title match between the two since Wimbledon in 2007.
Scarlett Johansson steps out with fiance after pregnancy reveal
Dennis Rodman pledges to end trips to North Korea