India beat West Indies by four wickets in a low-scoring Pool B game in Perth to qualify for the World Cup quarter-finals.
Man of the match Mohammed Shami took 3-35 as the Windies were bowled out for 182 inside 45 overs. It took a half-century from number nine by captain Jason Holder, his second of the tournament, to even lift them that far.
They made India work hard for the runs, taking two early wickets and at one stage reducing their opponents to 107 for five.
But another captain's innings, this time an unbeaten 45 from Mahendra Singh Dhoni, took India to a winning score of 185 for six with almost 11 overs to spare.
Their eighth successive World Cup win preserves their 100 per cent record in the current tournament and keeps them top of their group on eight points, out of reach of West Indies, Zimbabwe and United Arab Emirates.
With India on course to win Pool B, they are the likeliest opponents for England should Peter Moores' side reach the quarter-finals. The game would be played at the Melbourne Cricket Ground on Thursday 19 March.
Holder won the toss but India made the perfect start by removing Dwayne Smith, caught behind off Shami, and Marlon Samuels, run out after a farcical mix-up with Chris Gayle, with only 15 on the board.
Gayle became Shami's second victim, pulling straight to Mohit Sharma in the deep for 21, and when Umesh Yadav bowled Denesh Ramdin first ball it was 35 for four.
Here's the updated Pool B Table #Ind have qualified for Q/F now but the other spots couldn't be any tighter! #cwc15pic.twitter.com/WKOUzZuDrk
— ICC (@ICC) March 6, 2015
Jonathan Carter brought up the team's half-century and matched Gayle's score of 21 but he, Lendl Simmons and Andre Russell fell in the space of six overs to leave the Windies 87 for seven.
Holder and former captain Darren Sammy at least went down fighting, putting on 39 for the eighth wicket before Sammy, on 26, edged awkwardly to Dhoni to give Shami his third scalp.
Holder launched four fours and three sixes and dominated a stand of 51 with Jerome Taylor, who batted 18 minutes for a sensible 11, but was last out for 57 from 64 balls as Ravindra Jadeja completed figures of 2-27. Yadav took 2-41.
India's start with the bat was scarcely better, Taylor removing openers Shikhar Dhawan and Rohit Sharma with 20 on the board.
Virat Kohli responded well, putting on 43 with Ajinkya Rahane before lofting Russell to Samuels having scored 33 from 36 balls.
Rahane soon followed, caught behind off Kemar Roach for 14, and when Smith ended a developing stand between Suresh Raina and Dhoni India were wobbling again with 76 still needed.
But Dhoni took control, building on a patient start to see his side home.
His first two boundaries were unconventional, top-edging Holder over keeper Ramdin for four and uppercutting Russell for six, but he kept his nerve and picked his moments to attack.
Jadeja fell to Russell for 13 but Ravichandran Ashwin made 16 not out and the end came when Dhoni edged Samuels wide of slip for four.
West Indies hardly helped themselves by giving away 19 runs in wides and though Taylor took 2-33 and Russell 2-43, both - along with Holder and Roach - had overs in hand while part-timers Smith and Samuels bowled at the end of the innings.
Holder insisted he had "no regrets" about choosing to bat first but Dhoni acknowledged the part played by conditions.
"I think it was a difficult wicket, even initially with the new ball," he said. "There was some variable bounce, it was doing a bit.
"It is a difficult target, because you don't know whether to go and play your shots. It was a good chance to test our lower middle order. Ashwin played well and Jadeja will have to step up too, I feel."