Manchester: Mohammed Shami returned career-best figures of 4/16 as India underlined their bowling might by chalking a huge 125-run victory over the West Indies in their World Cup group stage encounter to knock them out and put one foot in the semi-final.
India rode half centuries from skipper Virat Kohli (72 off 82 balls) and Mahendra Singh Dhoni (56 not out) with Hardik Pandya smashing a quickfire 46 to post 268/7 in 50 overs after electing to bat first.
Chasing a challenging 269 for victory, the Windies were never in the hunt as Shami, who grabbed a hat-trick against Afghanistan in India's last game, returned best figures with Jasprit Bumrah (2/9) and Yuzvendra Chahal (2/39) also picking up two wickets.
India, placed second in the points table, now have 11 points from six games and will take on England on Sunday.
Shami got the party underway for the men in blue, taking the wickets of Chris Gayle (6) who was caught at mid on by Kedar Jadhav, and Shai Hope (5) who was clean-bowled inside the first seven overs.
Sunil Ambris and Nicholas Pooran then shared a 55-run stand for the third wicket before Pandya trapped Ambris (31) in front. From then on, it was all downhill for the Caribbean outfit as Pooran also departed for 28, Kuldeep Yadav having him caught by Shami at long off.
In the end, Windies were bundled out for 143 in 34.2 overs as Shami took the final wicket of Oshane Thomas (6). Kemar Roach remained not out on 14.
Earlier, Kohli notched up his fourth consecutive fifty, his innings studded with eight fours, while Dhoni took time till the final over to get his mojo back and remained unbeaten on 56 off 61 balls with the help of three fours and two sixes after India chose to bat first.
Pandya took 38 balls to score 46 (4x5) before holing out to Fabien Allen off Sheldon Cottrell in the 49th over.
In the final over, Dhoni took 16 runs off Oshane Thomas by hitting two sixes -- off the first and last ball -- and a four to put behind his woeful crawl in which he was let go twice by the Windies.
Dhoni was dropped by Thomas off his own bowling on 37 in the 48th over after wicketkeeper Shai Hope messed up an easy stumping opportunity when the former India skipper was batting on eight.
For the Windies, Roach (3/36) was the pick of the bowlers while Sheldon Cottrell (2/50) and skipper Jason Holder (2/33) chipped in with crucial breakthroughs.
India lost in-form opener Rohit Sharma (18) early, albeit in controversial circumstances, when a Roach delivery pitched on good length and jagged back sharply, kissing what the Windies thought was the inside edge of Rohit's bat.
The onfield umpire turned down the appeal, but Holder decided to review it. The third umpire overturned the onfield umpire's decision and Rohit was adjudged to have nicked the ball.
Kohli joined Lokesh Rahul (48; 64b, 4x6) in the middle and the pair stitched together a 69-run stand before the latter once again failed to convert his good start, as Holder castled him all ends up.
Vijay Shankar too could not put to rest the No. 4 slot debate, getting out on 18 after edging Roach to Hope behind the stumps.
Jadhav was promoted up the order ahead of Dhoni, but did not last long with Roach again having him caught behind for just 7.
Kohli, in the meantime, became the fastest batsman to score 20,000 international runs when he reached 37.
Reaching 50 off 55 balls but just when he was looking set for a maiden hundred in this World Cup, Kohli pulled a half-tracker to midwicket where substitute Darren Bravo took the catch off Holder's bowling.
Pandya upped the ante a bit with some lusty blows as Dhoni found the fence for the first time after 16 overs to underline his struggle. But Dhoni made up for his poor show in the last over to help India put up a challenging total on the board.
Brief scores: India 268/7 in 50 overs (Virat Kohli 72, M.S. Dhoni 56 not out; Kemar Roach 3/36); West Indies: 143 all out in 34.2 overs (Sunil Amris 31; Mohammed Shami 4/16, Jasprit Bumrah 2/9)