Djokovic rallied from 4-2 down in the first set and fended off five set points in the second to make it 15 consecutive sets won against the 14-time grand slam winner. He capped the first by winning a stunning rally, exhibiting brilliant defense.
Despite the long losing streak against the current world No. 1, Nadal -- who was seen by the trainer for an issue with his left foot early in the second -- will probably be encouraged by his display Friday with just over a week to go before the French Open starts.
It was the tightest contest the two have played against each other during Djokovic's seven-match winning run.
Nadal will also be buoyed by winning back-to-back titles in Monte Carlo and Barcelona
The round of the affair -- the quarterfinals -- likely came too early for tennis fans given the duo's pedigree but the result at the Foro Italico ensures the two could face off in the French Open quarterfinals, and for the second straight year
Djokovic is seeking a maiden title at Roland Garros to complete his grand slam collection while the Spaniard aims for a 10th crown in southwest Paris and first grand slam since ousting his nemesis in the 2014 finale
On a blustery day in the Italian capital, it was Nadal who initially coped better. He played solid tennis, while Djokovic generously donated -- uncharacteristically -- unforced errors.
With Djokovic in trouble at 2-4, 0-30, Nadal was unable to earn a double-break lead.
That seventh game was also when Djokovic clashed with umpire Carlos Bernardes, who has previously had his issues with Nadal.
With Djokovic holding a game point, Nadal's forehand down the line was called wide. Bernardes inspected the mark -- as is customary on close calls on clay since Hawk-Eye isn't used on the surface -- but as he did so Djokovic pushed away his right arm.
Bernardes didn't take any action against Djokovic although the ATP's rule book states he could be hit with a $10,000 sanction if the governing body deems he was guilty of "physical abuse."
Nadal would pay for not breaking in the game.
He managed to save three set points serving at 5-6 but on the fourth, Djokovic flashed his remarkable retrieving skills.
Djokovic struck a defensive lob to stay in the point, reacted quickly to repel an overhead, scrambled to get to a volley, then lunged and instinctively struck a winning forehand volley to end the opener.
It was a major blow to Nadal but he broke to begin the second, leading Djokovic to bounce his racket in frustration.
Nadal maintained the advantage until the 10th game, but attempting to serve out the set at 5-4, the Spaniard failed to capitalize on any of the five set points.
Djokovic led 5-3 in the tiebreak and didn't relinquish the advantage to earn a semifinal match with either Kei Nishikori or Dominic Thiem.
Andy Murray, who defeated David Goffin 6-1 7-5, plays French lucky loser Lucas Pouille in the other semifinal. Pouille advanced when Juan Monaco withdrew due to a hip injury.