The last-four success will give the Spanish top seed added confidence ahead of the French Open, where he has won a record 10 titles.
Nadal, still unbeaten in semi-finals at the Foro Italico, unleashed a trademark clay-court attack after winning a tight first set lasting well over an hour.
"I need to be able to play my best tomorrow," Nadal said of a Sunday final against either defending champion Alexander Zverev or Croatian Marin Cilic.
"I'm very happy with my game. It all worked for me, the tactics, the shots."
Epic is what we expected and that's what we witnessed! 🙌 @RafaelNadal wins 7-6(4) 6-3 against Novak Djokovic and becomes the 1st one to qualify for the #ATP #ibi18 Final! Get ready tomorrow for another extraordinary battle! 🔥 #tennis pic.twitter.com/OWUv9iCAK0
The 31-year-old world number two cut the deficit in his head-to-head series with Djokovic to 26-25, after their 51st meeting since first facing off in 2006.
But the Serb complained afterwards about poor scheduling which affected his preparation, playing a late-afternoon quarter-final on Friday before returning to court on Saturday mid-afternoon.
"I don't want to seem like I'm complaining about losing the match because of the schedule. But having to end at night and coming back to play early in the day affects a lot," he said.
"Nobody has ever, ever reached me in my entire career to ask me about what I think would be the best scheduling. I don't think that is fair, we will address it in the next players' council."
Djokovic has rediscovered his form this week after months of elbow injury problems, including an operation earlier this year.
Nadal now stands 10-8 over Djokovic in semi-finals, with the pair having played each other at all four Grand Slam tournaments, the ATP Finals, Davis Cup, the Olympic Games along with eight of the nine Masters 1000 events.
Nadal took 73 minutes to win the opening set after leading 5-2.
But to take the early lead, the top seed had to avoid being reeled in by Djokovic.
Djokovic, a four-time Rome winner and former world number one, battled back to 5-5 with a break of the Spaniard before the set went to a tie-break, which Nadal took on the first of two set points with a backhand winner down the line.
Nadal took a 2-1 lead in the second set with another break of Djokovic and never lost control.
The top seed kept his nose ahead until the end, winning on his second match point as he fired another untouchable backhand.