Chris Gayle produced a typically dazzling display of big hitting but for his early fireworks were overshadowed by Virat Kohli, who hit an unbeaten century to help India clinch the ODI series in Port of Spain.

Three days after he overtook Brian Lara to become West Indies' record run-scorer in the format, Gayle flayed India's bowlers for a 41-ball 72, an innings that contained eight fours and five sixes.

His onslaught came to a tame end when he hit Khaleel Ahmed to Kohli at mid off, the left-hander – wearing a shirt with the number 301 on the back to mark his number of appearances - propping his helmet on the top of the handle before holding his bat up to the crowd as he returned to the pavilion.

West Indies finished on 240-7 after rain reduced their innings to 35 overs, with the Duckworth-Lewis-Stern method adjusting India's target would be 255, a score they reached with six wickets and 15 balls to spare thanks to Kohli's unbeaten 114.

The touring captain's knock – plus 65 from 41 deliveries from Shreyas Iyer – means India win the three-match series 2-0 after the opener was wiped out by bad weather.

Gayle's innings in potentially his final ODI was the West Indies' key contribution, though opening partner Evin Lewis also made a handy 43 in a stand of 115, while Nicholas Pooran later cleared the ropes three times in a breezy 30 from 16 balls.

West Indies then had India in trouble at 92-3 in the 13th over of their reply, Fabian Allen taking two wickets in three balls as he removed Shikhar Dhawan and Rishabh Pant.

Kohli and Iyer led the recovery after the double setback, their 120-run partnership transforming the match as the latter matched Gayle's of five sixes before he was caught by Jason Holder off Kemar Roach.

Kedar Jadhav contributed 19 not out but it was Kohli who finished the West Indies off, hitting back-to-back boundaries off Carlos Brathwaite as he followed up his 120 on Sunday with another impressive ton.

The teams will next face each other in two Tests, the first of which begins on August 22.