Mohammed Shami's three wickets helped to sink a reckless West Indies for 182, and India overhauled it down within 40 overs, scoring 185-6 at the WACA Ground in Perth, Western Australia.
The defending champions were put in some strife at 78-4 then 134-6, until skipper Mahendra Singh Dhoni patiently held off the seamers and finished with an unbeaten 45.
Earlier, West Indies captain Jason Holder scored 57 to rescue his floundering side from 124-8, after winning the toss and electing to bat.
"It was good to score some runs under pressure, a very good win for us," Dhoni said.
Shami, named man of the match, returned from injury to take out Dwayne Smith, Chris Gayle and Darren Sammy for 35 runs in eight overs. Seam bowler Umesh Yadav and left-arm spinner Ravindra Jadeja took two wickets apiece, as India remained in first place in Pool B.
On Saturday, South Africa, second in Pool B, will hope to keep pace with India when it plays Pakistan at Auckland, New Zealand. In the day's other match, Ireland and Zimbabwe, who played to a rare tie in the last — and only — time the teams met at a World Cup, meet in Hobart on the island state of Tasmania. Both teams are hopeful of a spot in the final eight.
New Zealand, first into the quarterfinals, can all but clinch first place in Pool A with a home win on Sunday over Afghanistan at Napier. The New Zealanders, with four consecutive wins, can get some help from their co-host, Australia. If Australia beats second-place Sri Lanka in Sydney on Sunday, and the Kiwis beat Afghanistan, New Zealand will finish the pool stage in first, and receive a more favourable draw in the last eight.
Australia lost by one wicket to New Zealand, and endured a washout against Bangladesh in Brisbane two weeks ago, therefore taking one point instead of a probable two. The four-time champion can go a long way to ensure it finishes second in Pool A by downing 1996 champion Sri Lanka, which has been runner-up in the past two tournaments.
A rain-out against South Africa on Saturday would give Pakistan a point and boost its chances in a dogfight for a quarterfinal place. In its last two games, against the West Indies and Ireland, South Africa has posted 400-plus totals and won by more than 200.
Since losing its first two games against India and the West Indies, 1992 champion Pakistan has beaten Zimbabwe and the United Arab Emirates.
Zimbabwe will be without injured captain Elton Chigumbura, who has a left leg muscle tear, when it takes on Ireland in Pool B at Bellerive Oval in Hobart.
Zimbabwe won't be taking anything for granted based on what happened in 2007 at Sabina Park in Kingston, Jamaica. Ireland scored 221, and Zimbabwe was on track for an easy win, needing 19 runs from 39 balls with five wickets in hand. But three run-outs in the final two overs created panic among the Zimbabwe batsmen, and the teams tied.
Ireland, which has won two of its three matches but has tougher clashes remaining against India and Pakistan after Saturday's game, was beaten badly — by 201 runs — by South Africa in its last match.
"You've got to put it behind you pretty quickly," Ireland captain William Porterfield said.
Meanwhile, Bangladesh batsman Anamul Haque was ruled out of the tournament after injuring his right shoulder in the outfield in the win over Scotland on Thursday, and replaced by Imrul Kayes.
Seekuge Prasanna will also replace Dimuth Karunaratne in Sri Lanka's squad. Karunaratne broke his little finger while training in Sydney.