Comeback king: Rafael Nadal poses with the trophy
German second seed Zverev was 3-1 up in the decider before two rain stoppages halted his momentum.
Top seed Nadal raced away with the last five games to secure a 32nd Masters title and ensure a return to the world number one spot.
The 31-year-old also showed why he will once again be the runaway favourite when Roland Garros begins in a week where he'll be bidding for an 11th French Open title.
Zverev, 21, came to the court riding a 13-match win streak which included last weekend's trophy in Madrid.
However, by the end of Sunday's rain-hit final, his record against the Spaniard stood at five defeats in five meetings.
Nadal was 3-1 down at the first rain break but cut the gap on the resumption.
After a further half an hour off court during the second interruption, Nadal came back out firing, winning four straight games to wrap up the win on his second match point.
"The rain break was so important, I didn't think it would help me but it did. I was able to come back out with clear ideas, I'm very happy," said Nadal.
"To win Rome eight times is amazing, it's hard to describe. To have the chance to win here again is so great.
"As for Roland Garros, I'm going to enjoy this victory and think about Paris in a few days.
"For Alexander it's amazing to have won that many matches in a row," Nadal said after winning in just over two hours.
"Today this trophy is with me for a short time, but I'm sure you will get it again."
He added: "This was a very difficult match played at one of the best events of the world.
"To win again after my first (Rome title) in 2005 is amazing, the 2005 final was one of the best memories of my career."
Nadal remains the best clay-courter of the Open Era with an astonishing 408-36 record
He will next seek an 11th French Open crown to match the 11 he owns from Monte Carlo and Barcelona.
"You are an amazing champion and you proved that today," Zverev told the Spaniard at the trophy presentation.
"You are the greatest clay player of all time, we all saw that. I'm disappointed that my streak is over, but I did lose to Rafa, so maybe it's OK.
"I was so close but I lost it at the end."
With the sun shining, Nadal made light work of what looked like a disastrous start to the match as he dropped serve in the opening game.
But the king of clay quickly mounted a fightback, breaking world number three Zverev to love and going on to deny the German a winning service game in the entire set.
Nadal closed out the opener in 32 minutes on an overhead smash to leave his challenger scratching for answers after losing six straight games.
Zverev finally held serve to start the second set and answered Nadal by breaking the top seed twice to reach 5-0 as the first dark clouds of the week gathered over the Foro Italico and the conditions slowed.
Nadal temporarily stopped the rot as he won his fist game of the set but Zverev levelled the match at a set each a game later.
That set the stage for the rollercoaster third set decider.