India 357 for 8 (Gill 92, Kohli 88, Iyer 82, Madushanka 5-80) beat Sri Lanka 55 (Shami 5-18, Siraj 3-16) by 302 runs
Mumbai: A sensational bowling performance saw India dismiss Sri Lanka for just 55 to secure a World Cup semi-final spot.
Sri Lanka were set a World Cup record 358 to win in Mumbai but dismally slumped to 14-6 inside 10 overs.
They managed to avoid the lowest one-day international total of 35, but Mohammed Shami claimed 5-18 to wrap up a crushing 302-run win in 19.4 overs.
India had posted an imposing 357-8 after Shubman Gill made 92, Virat Kohli added 88 and Shreyas Iyer smacked 82.
While many of Sri Lanka's batting woes were the result of outstanding bowling from India, they were also left to rue a sloppy fielding performance that saw Gill dropped on eight and Kohli on 10.
After India captain Rohit Sharma fell second ball, Gill and Kohli put on 189 to take control as the Sri Lankan bowling attack wilted in the heat, making Kusal Mendis' curious decision to bowl first even more questionable.
Shreyas added to the punishment late on, entertaining the raucous crowd with a brutal 56-ball knock that contained six sixes, including the longest of the tournament so far at 106 metres.
The noise only increased with every Sri Lankan wicket that tumbled, Shami becoming India's leading World Cup wicket-taker in the process, with 45 scalps in just 14 matches.
For Sri Lanka, seamer Dilshan Madushanka's 5-80 was their only positive, taking him top of the World Cup wicket-taking charts on 18.
India have cruised into the semi-finals unbeaten, while Sri Lanka's qualification hopes are not mathematically over but they need to win their remaining two games and rely on other results going their way.