Rohit Sharma, who made 63, and KL Rahul, on 77, lay the foundation of the team's chase with their opening partnership of 122 after the West Indies posted 315 for five.
West Indies skipper Kieron Pollard and Nicholas Pooran put together 135 runs for the fifth wicket to lift their side from 144 for four to a fighting total. Pollard remained unbeaten on 74 off 51 deliveries after Pooran hit an attacking 89 to pulverise the Indian bowling in the last 10 overs that got West Indies 118 runs.
In response Kohli, who made India bowl first after winning the toss, batted with conviction despite wickets falling from the other end to make the second-ranked ODI side finish the year on a high. Jason Holder got Sharma caught behind and Alzarri Joseph sent Rahul trudging back to the pavilion after his second successive score of 50 plus. He made 102 in India's series-levelling second ODI.
But Kohli kept up the attack during his 81-ball knock despite wickets falling at the other end before chopping a wide delivery on the off side onto his stumps.
Thakur then hit two fours and a six in his six-ball cameo to bring the packed house back to life as he celebrated the win with Jadeja.
India paceman Navdeep Saini claimed two wickets after being handed his ODI cap by Kohli. The 27-year-old Saini got his maiden ODI wicket after sending the dangerous Shimron Hetmyer back to the pavilion for 37.
Hetmyer's wicket ended a 62-run third-wicket stand with Roston Chase who was bowled by a toe-crushing yorker from Saini for 38 to hurt the West Indies. But Pooran counter attacked and completed his second successive fifty with a six off left-arm wrist spinner Kuldeep Yadav, who went wicketless after coming into the game with 99 scalps.
He hit 10 fours and three sixes in his knock that lasted 64 balls before falling to Shardul Thakur with a mistimed hit to deep point.
Pant dropped three catches to give Chase (on nought), Hetmyer (on nine) and Pooran (on 52) extended stays at the wicket. India will next host Sri Lanka for a three-match Twenty20 series starting January 5. Australia will also travel to India for three ODI matches starting January 14.
Scoreboard
============================================== West Indies ============================================== E. Lewis c Saini b Jadeja 21 S. Hope b Shami 42 R. Chase b Saini 38 S. Hetmyer c Yadav b Saini 37 N. Pooran c Jadeja b Thakur 89 K. Pollard not out 74 J. Holder not out 7 Extras: (lb4, w3) 7 ---------------------------------------------- Total: (5 wickets, 50 overs) 315 ==============================================
Did not bat: K. Paul, K. Pierre, A. Joseph, S. Cottrell
Fall of wickets: 1-57 (Lewis), 2-70 (Hope), 3-132 (Hetmyer), 4-144 (Chase), 5-279 (Pooran)
Bowling: Thakur 10-0-66-1 (w2), Shami 10-2-66-1, Saini 10-0-58-2 (w1), Yadav 10-0-67-0, Jadeja 10-0-54-1
India (target 316)
============================================= R. Sharma c Hope b Holder 63 KL Rahul c Hope b Joseph 77 V. Kohli b Paul 85 S. Iyer c Joseph b Paul 7 R. Pant b Paul 7 K. Jadhav b Cottrell 9 R. Jadeja not out 39 S. Thakur not out 17 Extras: (lb2, w9, nb1) 12 --------------------------------------------- Total: (6 wickets, 48.4 overs) 316 =============================================
Did not bat: S. Thakur, K. Yadav, M. Shami, N. Saini
Fall of wickets: 1-122 (Sharma), 2-167 (Rahul), 3-188 (Iyer), 4-201 (Pant), 5-228 (Jadhav), 6-286 (Kohli)
Bowling: Cottrell 10-1-74-1 (w7), Holder 10-0-63-1, Paul 9.4-0-59-3 (nb1), Chase 4-0-19-0, Pierre 7-0-46-0, Joseph 8-0-53-1 (w2)
Toss: India
Result: India won by four wickets
Series: India won the three-match series 2-1
Umpires: Shaun George (RSA), Nitin Menon (IND)
TV umpire: Rod Tucker (AUS)
Match referee: David Boon (AUS)