The Indians, who had lost both their previous matches, posted a challenging 311 for seven before bowling out the hosts for 171 in 34 overs to grab a bonus point via the Duckworth/Lewis method in a rain-truncated match.
The target was revised to 274 in 39 overs after a two-hour rain delay before which the hosts were 56 for two in 10 overs.
India's victory has thrown the series wide open with all three teams in with a chance of making the finals.
India will face Sri Lanka on Tuesday in the last league match. Both the teams have five points each as of now.
After a couple of ordinary shows, the famed Indian batting line-up got its act together with Kohli leading the way.
Batting with a lot of grit and gumption, Kohli (102) anchored India after the team lost five established batsmen at a score of 210 in 40 overs.
Openers Shikhar Dhawan (69) and Rohit Sharma (46) had laid a strong foundation with their 123-run stand and Kohli ensured that their hard work did not go waste with his gritty 14th One-Day century.
After resumption, West Indies batsmen succumbed to pressure and the team lost wickets in a heap.
