With this victory, India won the three-match ODI series by 2-0 after the first ODI got abandoned due to rain.
Chasing a target of 255 runs, both the India openers, Rohit Sharma and Shikhar Dhawan, started smashing boundaries. They scored 21 runs from the first two overs. However, in the next over, due to lack of coordination, Sharma (10) was run out.
Skipper Virat Kohli then came out to bat and played steadily along with Dhawan. Both kept the scoreboard running and formed a 66-run partnership.
Fabian Allen bowled the 13th over and took the wicket of Dhawan (36) and sent the next batsman, Rishabh Pant, back to the pavilion on a duck.
Shreyas Iyer then accompanied Kohli on the field. Due to the fall of wickets, both avoided risky shots and played cautiously. Both Kohli and Iyer scored their respective half-centuries and formed an impeccable 120-run partnership to put India on a dominating position.
Kemar Roach provided West Indies with a crucial breakthrough as he got hold of Iyer (65) in the 29th over. Kedar Jadhav then took the field to join skipper on the field.
Kohli continued his form and completed his 43rd ODI century. Kohli played an unbeaten knock of 114 runs to take India over the line and India won the match by six wickets.
Earlier, after opting to bat first, West Indies had a brilliant start as both the openers Chris Gayle and Evin Lewis struck regular boundaries.
Although the match was interrupted by the rain in the second over, both the openers did not stop hammering boundaries and sixes as soon as the match was resumed. Indian pacer Mohammed Shami conceded 18 runs in the sixth over as Gayle smashed three boundaries and one six.
Gayle scored his half-century off just 30 balls. However, Lewis missed his half-century by seven runs as he gave away an easy catch to Dhawan off Yuzvendra Chahal's delivery. Lewis' dismissal, in the 11th over, ended his 115-run partnership with Gayle.
In the very next over, Gayle (72) too was sent back to the pavilion by Khaleel Ahmed as Virat Kohli caught a sharp catch at mid-off.
Shai Hope and Shimron Hetmyer took the field and played cautiously to take their side over the 150-run mark. However, after the 22 overs, the match was again interrupted by the rain when West Indies were at 158/2.
After a long wait, the match was continued but was reduced to 35 overs per inning.
India made a solid comeback in the match as both Hope and Hetmyer were dismissed quickly after the match resumed. Shami got hold of Hetymer (25) in the 25th over while Hope (24) became a victim of Ravindra Jadeja in the next over.
Jason Holder and Nicholas Pooran then took the charge but their partnership also did not last long as the latter was sent back to the pavilion by Shami in the 31st over. Pooran was playing furiously as he scored 30 runs off just 16 balls.
After Pooran's dismissal, Carlos Brathwaite came out to bat. However, fall of wickets did not stop as skipper Holder (14) too got out, caught by Kohli off Ahmed's ball. Fabian Allen was the next batsman.
In the last over, Brathwaite smashed a six and a four before losing his wicket to Ahmed. Allen then hit a four on the last delivery of the inning to take his side to a respectable total of 240 runs. However, as the match was reduced to 35 overs due to rain, the DLS came in to play and target for India was 255 runs.
India will now compete against West for the first Test match starting from August 22.
Brief scores: India 256/4 (Virat Kohli 114*, Shreyas Iyer 65, Fabian Allen 2-40) defeated West Indies 240/7 (Chris Gayle 72, Evin Lewis 43, Khaleel Ahmed 3-68) by six wickets.