Wicketkeeper Sanju Samson struck an unbeaten 43 after taking three catches to guide India to a five-wicket victory on Saturday and a series win over Zimbabwe after the second of three ODIs in Harare.
Zimbabwe made a modest 161 after losing the toss and India recovered from losing skipper KL Rahul leg before for one to reach 167-5 with 146 balls remaining.
The result relegates the third match on Monday to a dead rubber, but Zimbabwe will be encouraged after putting up a much better show than two days ago, when they suffered a 10-wicket hiding.
Batting at number six, Samson faced 39 deliveries over 51 minutes and smashed four sixes and three fours.
Opener Shikhar Dhawan and fellow top-order batsman Shubman Gill contributed 33 runs each as India recovered from 5-1 to eventually finish comfortable winners.
Vice-captain Dhawan struck four fours in a brisk innings while the more cautious Gill notched six fours. Luke Jongwe was the most successful Zimbabwe bowler, taking the wickets of Gill and Ishan Kishan.
The unbeaten 43 and three catches earned Samson the player of the match award and the wicketkeeper said he enjoyed his time in front of the stumps.
"I took three catches but I missed a stumping - as wicketkeepers we are used to being told about things we did not do well," he said.
"I really enjoy wicketkeeping and contributing to this win. In this match the fast bowlers picked the length much quicker and I really enjoyed that.
Captain Rahul said: "We bat deep and it is good for some of the guys to get time in the middle. We were not nervous despite my early, cheap dismissal.
"I wanted to get some runs but it did not happen. Hopefully in the next game I will be more successful. The Zimbabwe bowlers came hard at us, they are big, tall, strong boys, and created a good challenge for us batters."
India won the toss and chose to field for the second successive match. Shardul Thakur took three wickets to dismiss the hosts in 38.1 overs.
The medium-fast bowler replaced Deepak Chahar in the only change from the team that won the first match by 10 wickets.
Rahul did not reveal the reason for leaving out Chahar, who had taken three wickets on Thursday and won the player of the match award.
The prized wicket of Sikandar Raza, who hit two centuries in a ODI series victory over Bangladesh, fell to Kuldeep Yadav after the Pakistan-born batsman scored 16.
Only former Zimbabwe captain Sean Williams and unbeaten Ryan Burl made any impact against the Indian attack, hitting 42 and 39 respectively.