India booked their place in the semi-finals of the World Cup with a 28-run win over Bangladesh at Edgbaston on Tuesday.
Victory saw two-time former champions India join reigning title-holders Australia in the last four with a match to spare, while this result ended Bangladesh's slim hopes of advancing to the knockout phase.
Bangladesh openers managed to give a decent start after some brilliant bowling from India’s strike bowlers before Tamim Iqbal (22) was removed by Shami prematurely. Soumya Sarkar (33) was the next to return back to the dressing room after Tamim while in form Mushfiqur Rahim failed to prolong his innings of 24. Liton Das also looked in good touch before he was set in a trap by Hardik Pandya on 22.
All-rounder Shakib got out after scoring 66 as Hardik Pandya set him up for a rather soft dismissal.
Opener Rohit Sharma hit his fourth century of the World Cup to set India up for a huge score. However, Mustafiz managed to take a five-wicket haul to restrict India to 314/9, who were looking to score almost 380 plus runs at one point in the game.
Sharma survived an early scare to take control against the Bangladesh bowlers as India reached an ominous 181 for one at the end of 30 overs.
Sharma, who was dropped on nine by Tamim Iqbal at deep midwicket, reached his second successive ton with a single off Shakib Al Hasan, celebrating by flipping his bat in the air.
But he was caught at extra cover by Liton Das off the bowling of Soumya Sarkar for 104, ending a 180-run opening stand -- the best for the first wicket in this World Cup -- with KL Rahul.
Skipper Virat Kohli joined Rahul after the fall of Sharma but Rahul was out shortly afterwards, caught by wicketkeeper Mushfiqur Rahim off the bowling of Rubel Hossain for 77.
Sharma, who scored 102 in India's first World Cup defeat to hosts England on Sunday at the same venue, started with a six in the first over but mistimed a pull off paceman Mustafizur Rahman only for Tamim to drop a simple catch.
Sharma continued to attack, hitting seven fours and five sixes in his 92-ball stay at the wicket, cheered by a largely pro-India crowd in Birmingham.
Rahul was happy to play second fiddle to his in-form partner but also took on the Bangladesh bowling.
Bangladesh captain Mashrafe Mortaza rotated his bowlers but could not force an early breakthrough.
A win for India would ensure a semi-final spot in the 10-team event.
Earlier, India captain Virat Kohli had won the toss and elected to bat first.
Bangladesh have made two changes to their line-up - pacer Rubel Hossain comes in for Mehidy Hasan and Sabbir Rahman replaces Mahmudullah Riyad, who failed to pass the fitness test for his calf-tear sustained during the Afghanistan game.
On the other hand, India also made two changes - Bhuvneshwar Kumar comes in for Kuldeep Yadav.
It’s a do or die situation for Bangladesh in the ongoing 2019 World Cup as Tigers face India in their second last group stage match.
The equation is simple yet tough for Bangladesh as they need to win both of their remaining matches in the World Cup, against India in Birmingham and against Pakistan at Lords on Friday, to stay alive in the contention of sealing a spot for the semifinal round.
Bangladesh: Mashrafe Mortaza (capt), Tamim Iqbal, Soumya Sarkar, Shakib Al Hasan, Mushfiqur Rahim (wkt), Liton Das, Sabbir Rahman, Mosaddek Hossain, Mohammad Saifuddin, Rubel Hossain, Mustafizur Rahman
India: Virat Kohli (capt), Rohit Sharma, KL Rahul, Rishabh Pant, Dinesh Karthik, MS Dhoni (wkt), Hardik Pandya, Bhuvneshwar Kumar, Mohammed Shami, Yuzvendra Chahal, Jasprit Bumrah:
Umpires: Ruchira Palliyaguruge (SRI), Marais Erasmus (RSA)
TV umpire: Aleem Dar (PAK)
Match referee: Ranjan Madugalle (SRI)