Nadal improved to 9-0 against 16th-seeded Richard Gasquet in the day's first match, downing the Frenchman 7-5, 6-1 Saturday.
The Spaniard, who is seeking his seventh Rome title, served up four aces and was 4-for-4 on saved break points Saturday.
Djokovic, meanwhile, ran his undefeated streak to 36-0, gutting out a break-filled third set to beat Andy Murray, 6-1, 3-6, 7-6 (7-2).
The Serb's 36-0 start is the longest undefeated string in an ATP season since John McEnroe went 42-0 in 1984.
The two will square off in Sunday's championship match.