India hammered Sri Lanka by 302 runs in Mumbai on Thursday as the unbeaten tournament hosts reached the World Cup semi-finals with a crushing victory.
Sri Lanka collapsed to 55 all out inside 20 overs, having been set 358 to win.
Mohammed Shami took 5-18 in five overs after Jasprit Bumrah and Mohammed Siraj struck with the new ball in an innings featuring five ducks and a top score of just 14.
Both Sri Lanka openers fell for golden ducks as they slumped to 14-6.
Bumrah, with 1-8 in five overs, and Siraj (3-16 in seven) did the early damage before Shami took two wickets in two balls as Sri Lanka's rapid collapse continued.
India's winning margin was their biggest success, by runs, in a World Cup game surpassing their 257-run defeat of non-Test nation Bermuda during the 2007 edition in the Caribbean.
Virat Kohli missed out on equalling Sachin Tendulkar's all-time record of 49 one-day international hundreds but still made 88 in a total of 357-8.
Opening batsman Shubman Gill top-scored with 92.
The pair were out in quick succession after they had shared a stand of 189 following the second-ball exit of India captain Rohit Sharma.
But Shreyas Iyer kept the runs coming with a blistering 82 off just 56 balls including six superbly struck sixes. (AFP)