The final game of the series too was heading India's way until Raza (115 off 95 balls) brought Zimbabwe back into the contest with the support of Brad Evans (28 off 36).
The duo shared a 104-run stand off 77 balls for the eighth wicket to raise hopes of a memorable result against their mighty opponents. However, Raza fell to a brilliant catch by Shubman Gill in the penultimate over, as India scraped through.
It was Gill who had set up the game for India as he smashed his maiden international hundred to take the visitors to 289 for eight. Zimbabwe's innings ended at 276 in 49.3 overs.
Gill (130 off 97 balls), who reached a major career milestone more than three years after making his India debut, shared a 140-run stand with Ishan Kishan (50 off 61) after the visitors decided to bat for the first time in the series.
Sean Williams (45 off 46) and Raza played some bold strokes early in the Zimbabwe chase.
Deepak Chahar once again impressed with the new ball while left-arm spinner Axar Patel got welcome wickets in the middle overs.
Chahar got his first wicket with a booming inswinger as Innocent Kaia (6) was trapped while charging down the wicket. The Indians were convinced that the full ball hit the pad first and went for a review that turned out to be successful.
His opening partner Takudzwanashe Kaitano (13 off 22), who walked back to the dressing room with leg pain, returned to the middle but not for long. India spinner Kuldeep Yadav drew him forward with a wrong un that had the Zimbabwean stumped.
Though Zimbabwe kept losing wickets regularly, the seasoned Raza stood strong before completing his third hundred in the last six innings.
The crowd got more involved when Raza smashed Shardul Thakur for three fours in the 39th over that eventually yielded 20 runs.
The Indian bowlers were found wanting with Raza and Evans collecting boundaries at will. In the end, the hosts fell agonisingly short.
Opting to bat for the first time in the series, India did not have the most fluent of starts as they struggled to 63 for one in 15 overs.
Both the seasoned openers -- skipper K L Rahul (30 off 46) and Shikhar Dhawan (40 off 68) -- would be disappointed at not being able to convert their starts.
Coming back from a long injury break, Rahul had an ideal opportunity to get back into groove ahead of the Asia Cup T20. He played on to a length ball off medium pacer Brad Evans who ended up taking five wickets for the first time.
The first hour has proved to be tricky for the batters here but with so much experience under their belt, both Dhawan and Rahul should have gone on to make big ones.
Barring the stand between Gill and Kishan, not much stood out from the Indian innings.
Gill, who made his ODI comeback with the series against the West Indies, was a treat to the eye during his innings comprising 15 fours and a six. The 22-year-old played shots all around, with his straight drives and cover drives standing out.
Gill had a few nervous moments in the 90s before he reached the milestone.
Evans appealed for a close leg before call but the DRS was turned down after UltraEdge showed that the ball touched Gill's bat before thudding into the pads. On the same ball however, Kishan was run out at the other end after he left his crease for a quick single, but Gill was preoccupied with the appeal.