Stand-in skipper Virat Kohli struck 102 off 83 balls as India beat West Indies by 102 runs (Duckworth-Lewis method) in Port of Spain on Friday to get their first victory of the Tri-Nation Series.
After defeats to the hosts and Sri Lanka, Champions Trophy winners India badly needed a victory at the Queen's Park Oval to have a chance of reaching the final of the series on Thursday.
West Indies captain Dwayne Bravo won the toss and elected to put India in to bat on a grassy looking wicket but the hopes he had of early breakthroughs failed to materialise.
Indian openers Rohit Sharma and Shikhar Dhawan put on 123 in 23.1 overs for the first wicket before Dhawan holed out to Darren Bravo at midwicket off Kemar Roach having made 69 from 77 balls.
Sharma (46) then edged Tino Best to West Indies keeper Denesh Ramdin and West Indies seemed to be making progress with two cheap wickets.
Suresh Raina (10) was caught by Darren Sammy at slip off the spin of Marlon Samuels and Dinesh Karthik was caught down the leg side by Ramdin off Best.
But then Kohli and Murali Vijay put on 42 runs in the five over 'power play' and despite lacking a strong partner after Vijay's departure, Kohli took full advantage of some loose bowling.
Kohli, captain in the absence of the injured MS Dhoni, hit 13 fours and two sixes on the way to his 14th one-day international century before he went on the final ball of the innings - finding Sammy at deep midwicket off Dwayne Bravo.
A target of 312 was going to be a tough challenge for West Indies and it quickly got tougher when they lost opener Chris Gayle and Darren Bravo, both to seamer Bhuvneshwar Kumar.
A 90-minute rain delay reduced the game to 39 overs and the target to 274 but only Johnson Charles, with a lively 45 from 39 balls, managed to build any sort of innings.
Marlon Samuels was caught behind off Ishant Sharma and then Kumar removed Kieron Pollard first ball.
When Charles pulled Sharma to Raina at square leg, West Indies were 69 for five and then Umesh Yadav then ran through the middle order getting rid of Dwayne Bravo, Ramdin and Sammy cheaply.
The game was virtually over by the time Kemar Roach (34) and Sunil Narine (21) were able to provide some token resistance at the end.
West Indies have nine points from three games with India now on five from three and Sri Lanka also on five but from just two games.
Sri Lanka face West Indies on Sunday and then India two days later.