Kohli plundered 102 from 83 balls as India, who had lost their opening two games, posted 311 for seven.
That target was reduced to 274 in 39 overs after rain but West Indies never looked like chasing it down before being bowled out for 171 to hand India a bonus-point win.
New-ball pair Bhuvneshwar Kumar and Umesh Yadav claimed three wickets apiece to ensure the hosts' chase never got started.
Kumar had dangerman Chris Gayle caught behind in the third over and West Indies were 25 for two when he then prised out Darren Bravo.
West Indies reached 56 for two after 10 overs when the rain came and forced a reduction in the game.
The result was, however, soon all but sealed after the players returned as West Indies lost quick wickets.
After Ishant Sharma removed top-scored Johnson Charles (45) Yadav struck three quick blows to leave the hosts 113 for eight.
Kemar Roach and Sunil Narine delayed the inevitable in a 58-run stand.
Ravindra Jadeja eventually wrapped matters up having Narine caught in the deep before bowling Roach next ball.
Earlier Kohli led the charge after he lost the toss and was sent in by opposite number Dwayne Bravo.
Openers Shaker Dhawan and Rohit Sharma put on 123 for the first wicket to lay the foundation for Kohli to come in and take charge.
He did just that, despite wickets falling at regular intervals at the other end, as he struck 13 fours and two sixes in his 14th ODI century.
He was eventually dismissed in the final over, caught by Darren Sammy off Dwayne Bravo, but the damage had been done as India finished their 50 overs with a total of 311 for seven.
Kohli accelerated the pace during his innings, moving from 35 off 45 balls to 102 off 83 to set India up with a good chance of securing a win.
Tino Best (two for 51) had the best figures for the Windies.