Rohit Sharma smashed his seventh one-day international century of 2019 before Kuldeep Yadav took a hat-trick as India levelled their series against West Indies with a 107-run victory.

An opening partnership worth 227 between Rohit (159) and KL Rahul (102) laid the platform for the home side to post 387-5, with Shreyas Iyer (53) and Rishabh Pant (39) providing late fireworks after captain Virat Kohli fell for a golden duck.

Some brutal hitting from Shai Hope (78) and Nicholas Pooran (75) gave the Windies belief, yet Mohammed Shami (3-39) struck in back-to-back deliveries as visiting skipper Kieron Pollard was also dismissed first ball.

Kuldeep (3-52) then became the first Indian to claim two ODI hat-tricks as Kohli's side bowled West Indies out for 280 to wrap up the win with 6.3 overs to spare, setting up a decider in the third and final ODI on Sunday.

Rohit, the leading run-scorer in ODIs this year, was dropped on 70 by Shimron Hetmyer in the 28th over and he went on to beat his partner Rahul to three figures.

It was Rohit's seventh ODI century in 2019 and his 10th across all formats; only Sachin Tendulkar with nine centuries in 1998 has accrued more three-figure scores in the 50-over game across a calendar year.

Rahul soon joined him in bringing up that milestone but he fell later that over when he picked out third man, and India lost wickets in successive overs as Kohli offered Roston Chase a simple catch at short midwicket off Pollard.

Rohit became the first Indian to score 150 in an ODI this year with a fifth maximum of his innings and, after he nicked Sheldon Cottrell behind, Iyer and Pant hit the accelerator, the pair scoring 55 across the 46th and 47th overs to leave the tourists chasing a huge total.

Opener Hope was dropped at slip by Rahul from his first ball faced but India picked up three wickets in quick succession to go from 61 without loss to 86-3.

Hetmyer fell to some fantastic fielding from Iyer, who dove to save a boundary before recovering and delivering a pinpoint throw to the non-striker's end, though Hope and Pooran soon took the field out of the equation with some huge hitting.

In among his six maximums, Pooran was dropped, yet his 106-run stand with Hope was eventually ended when he top-edged down to Kuldeep.

Pollard was removed from the very next ball – the first time in ODIs both captains had been dismissed for golden ducks – and while Shami could not get a hat-trick, Kuldeep did.

Hope was the first of that trio to go, Kohli leaping up and balancing on one leg by the rope to take the catch, with Jason Holder stumped and Alzarri Joseph edging to second slip.

Shami, now the leading wicket-taker in ODIs this year, took his 41st wicket of 2019 by bowling Keemo Paul (46) to seal the win.