Shikhar Dhawan capitalised on three reprieves to slam his third ODI century as India maintained their stranglehold over minnows Zimbabwe with a comfortable 58-run victory in the second one-dayer on Friday.
Dhawan struck 116 as India recovered from early jolts to post a competitive 294 for eight and then restricted the hosts to 236 for nine to take a 2-0 series lead in the five-match series.
Put into bat, India were in a spot of bother at 65 for four at one stage before Dhawan and Dinesh Karthik (69) put on 167 runs for the fifth wicket to not only restore the innings but take them to a commanding total at the Harare Sports Club.
The Indians could have won the match by a much bigger margin but a defiant late-order resistance by Elton Chigumbara (46) and Prosper Utseya (52 not out) delayed the inevitable with the duo adding 88 runs for the seventh wicket to frustrate the tourists.
Opener Visu Sibanda (55) also provided a rollicking start to the Zimbabwean innings which somehow lost the momentum after his departure with five wickets falling within a span of 24 runs.
For India, Jaydev Unadkat was the pick of the bowlers with four for 41 while leg-spinner Amit Mishra accounted for two wickets.
The two teams will play the third match of the series at the same venue here on Sunday.
Zimbabwe lost opener Sikandar Raza (20) early into their run-chase as the Pakistan-born batsman, who had top-scored with 82 in the first one-dayer, went for an expensive pull-shot against Unadkat and was holed out in the deep.
Next man-in, Hamilton Masakadza and Sibanda chose to play a more patient game and rotated the strike cleverly before opening up against Vinay Kumar's medium-pace and Mishra's googlies.
Both hit Mishra early on in his spell for a six each while Kumar was pulled for two boundaries in the opening over and was taken for 16 runs in his return over in the second spell as the second-wicket partnership looked threatening on an eased out pitch.
Sibanda reached his individual fifty with a hit off Mishra over long-on for six and, in the process, also took his side's total past 100-run mark. However, Zimbabwe could not hold onto their strong position for long as Sibanda once again failed to covert his innings into a big score after dominating the Indian bowlers with his powerful hits.
Sibanda, who had escaped with a missed stumping chance after running down the pitch to Mishra, threw away his wicket and fell to Unadkat in the 21st over. His 57-ball 55 knock was laced with seven fours and two sixes.
Four balls later, Brendan Taylor (nought) ran himself out as from 109 for one, it became 109 for three for the hosts.
Zimbabwe's misery further compunded when Ravindra Jadeja had Sean Williams (5) trapped right in front of the stumps.
Next over saw the soft dismissal of Masakadza who ended up giving a simple catch to Mohammed Shami at short fine-leg going for a sweep shot. Masakadza scored 47-ball 34 which had one six over the deep midwicket.
Malcolm Waller (2) fell for Mishra's deceptive googly as the dismissal left the run chase in tatters.
Chigumbara and Utseya waged a lonely battle and showed some resistance but their efforts did not prove enough in the end.
Earlier, the Zimbabweans spilled regulation catches and their wayward bowlers conceded 28 extras as India posted a daunting target.
Dhawan was dropped twice when on 14 and 70 and the Delhi-lad also benefited from a no-ball by Kyle Jarvis in the fifth over when he had added just three runs to his name.
The 27-year-old, however, hung on and hit his third ODI ton in his 17th match to save the Indians the blushes. He hit 11 fours and two sixes.
Karthik played his part with a composed 74-ball innings which was studded with six fours as the duo denied the Zimbabweans any success for 25.4 overs.
India ended their innings in style with tail-enders Vinay Kumar (27 not out) and Mohammed Shami (6 not out) scoring 23 from the last over with the help of three sixes and a four.
Captain Virat Kohli could only score 14 runs while the other opener Rohit Sharma (1), Ambati Rayudu (5), Suresh Raina (4) and Jadeja (15) were also out cheaply.
The Indian innings was marred by Kohli's face-off with on-field umpires after he was given out to a controversial catch in the seventh over. He stood his ground even as Zimbabwe sought a review as the fielder - Malcolm Waller - was not sure whether he had caught the ball cleanly or not.
Kohli refused to leave even after the third umpire adjudged him out. He argued his case once again with the umpires who confirmed the decision. Eventually, a visibly upset Kohli reluctantly walked back to the pavilion.
India suffered an early jolt with opener Rohit being dismissed in the second over as pacer Brian Vitori got his scalp in his first ball.
Dhawan was out when on three in the fifth over but survived as it turned out that Jarvis had bowled a no-ball.
Then he was dropped on 14 in the ninth over with captain Brendan Taylor spilling a regulation catch, the unfortunate bowler being Jarvis. India were 38 for two then.
Rayudu, who came in at the fall of Kohli, was also dropped in the 10th over when the batsman was on three as Vitori spilled a caught and bowled chance.
Rayudu ended his struggle as he went for a drive without moving his feet while Raina also continued with his poor form as he was caught behind by Taylor.
Dhawan and Karthik then played the rescue act with a solid stand. They kept the scoreboard ticking by taking singles and rotating strike in the middle overs.
India took the batting powerplay in the 33rd over and scored 85 runs from the 10 overs to go past 200 in the 40th over.
After both were out in quick succession in the 43rd and 44th overs respectively, the lower order ensured that India go near the 300-run mark.
India: Virat Kohli (capt), Shikhar Dhawan, Rohit Sharma, Dinesh Karthik, Suresh Raina, Ambati Rayudu, Ravindra Jadeja, Amit Mishra, Mohammed Shami, Jaydev Unadkat, R Vinay Kumar.
Zimbabwe: Brendon Taylor (capt), Hamilton Masakadza, Vusi Sibanda, Sikandar Raza, Sean Williams, Malcolm Waller, Elton Chigumbura, Brian Vitori, Prosper Utseya, Kyle Jarvis, Tendai Chatara.