World number one Djokovic - winner at the Madrid Open last weekend - came through 6-3, 6-7 (2/7), 6-3 in 2hr 31min to meet defending champion Nadal, who earlier swept past Greece's Stefanos Tsitsipas.
Nadal, 32, had lost the Madrid semi-final to Tsitsipas but the 17-time Grand Slam winner advanced 6-3, 6-4 in 1hr 42min to reach his 11th final in Rome.
Nadal has not dropped a set this week while Djokovic needed to save to two match points before getting past Juan Martin Del Potro on Friday night.
The only time eight-time Rome winner Nadal has lost on the red clay of the Foro Italico has been to four-time winner Djokovic.
The pair who have meet four times in the Rome final and are 2-2 in previous meetings.
Sunday's match will also be their 54th meeting with Djokovic leading 28-25.
Results from the ATP and WTA Italian Open in Rome on Saturday (x denotes seeding):
Novak Djokovic (SRB x1) bt Diego Schwartzman (ARG) 6-3, 6-7 (2/7), 6-3
Rafael Nadal (ESP x2) bt Stefanos Tsitsipas (GRE x8) 6-3, 6-4
Johanna Konta (GBR) bt Kiki Bertens (NED x6) 5-7, 7-5, 6-2
Karolína Pliskova (CZE x4) bt Maria Sakkari (GRE) 6-4, 6-4