The Serbian triumphed in last week’s Madrid Open and has a chance to win back-to-back clay-court titles after overcoming the spirited Schwartzman in two hours 31 minutes.
Schwartzman, playing in a Masters 1000 semi-final for the first time, fought back from losing the first set in 36 minutes to take the second after a dominant tiebreak, but Djokovic got the crucial break in the sixth game of the deciding set to clinch victory.
Djokovic leads his head-to-head with Nadal by 28 wins to 25, but the Spaniard has dominated on clay with 16 victories to the Serbian’s seven.
Nadal progressed to his 50th Masters 1000 final thanks to a 6-3 6-4 win over Stefanos Tsitsipas, avenging his defeat to the 20-year-old at the same stage a week ago in Madrid.
The 32-year-old broke Tsitsipas’s serve early in both sets while holding his own service games as he wrapped up victory in one hour 43 minutes.
“It’s an important victory for me because I played a solid match against a good player and a player who is winning lot of matches on this surface," Nadal said.
"Winning in straight sets against him is a very positive result. More than this is a feeling that I am playing better every week, every day. That's important for me."
The win keeps Nadal in the hunt for a ninth Italian Open title after he lost at the semi-final stages of his last four tournaments.