India 314 for 9 (Rohit 104, Rahul 77, Pant 48, Mustafizur 5-59) beat Bangladesh 286 (Shakib 66, Saifuddin 51, Bumrah 4-55, Pandya 3-60) by 28 runs
As it happened
Bangladesh are out of the 2019 World Cup. They've beaten the teams they were expected to beat, and also a couple they may not have been, but they haven't managed to win any of their meetings with the tournament favourites, despite looking impressive and coming close on a couple of occasions. They came close against India at Edgbaston, but not close enough, falling 29 runs short in a chase of 315.
With this result, India become the second team after Australia to seal a spot in the semi-finals. They won an important toss, and got to a hugely advantageous position via a 180-run opening stand between Rohit Sharma, who scored his fourth hundred of this World Cup, and KL Rahul. Bangladesh kept chipping away at that advantage, with Mustafizur Rahman's cutters limiting the damage India could do in the slog overs, and their batsmen keeping them close to the required rate right through their chase, but they never completely nullified it.
Bangladesh lost a few too many wickets off not particularly threatening deliveries, and though seven of their top eight got past 20, only two of them went on to score half-centuries: the unfaltering Shakib Al Hasan and their No. 8 Mohammad Saifuddin. That, in the end, sealed the deal.
Hardik Pandya picked up the crucial wickets at regular intervals Getty Images
Tamim Iqbal and Mosaddek Hossain played on, done in by the slowness of the pitch but also their angled bats, while Soumya Sarkar and Mushfiqur Rahim hit aggressive shots straight to fielders on the 30-yard circle. Shakib, using the pace of the bowlers smartly and going at close to a run a ball despite only hitting six fours in 74 balls, kept Bangladesh in the chase despite all these setbacks, but when he was sixth out with 136 still to get, foxed by a clever slower ball from Hardik Pandya, the game looked over. Pandya, the fifth bowler with no sixth bowler in the XI, did a stellar job, varying his pace, hitting the pitch hard, and finishing with three wickets.
Despite Shakib's dismissal, Bangladesh's required rate hadn't yet gone out of hand, and Sabbir Rahman and Saifuddin kept the game alive with an entertaining stand of 66 in 56 balls. The partnership may also have given India a couple of pointers for future matches: it showed the value of having a useful batsman at No. 8, and also the tendency of Mohammed Shami to go for runs in the late overs. Should they go back to playing two spinners, the Shami vs Bhuvneshwar Kumar question - despite the wicket threat of the former - probably has a straightforward answer.
Runs were harder to come by against Bhuvneshwar and Jasprit Bumrah, and a slower offcutter from the latter ended Sabbir's innings in the 44th over. Saifuddin needed one of the tailenders to stay with him if Bangladesh were to get 70 off 41, but they didn't, not for long enough anyway.
The equation came down to 29 off 14 when Saifuddin took a single to bring the No. 10 Rubel Hossain on strike for the last two balls of Bumrah's quota of overs. Those two balls was all Bumrah needed, two inch-perfect yorkers proving too good for Rubel and Mustafizur.
The match was played on the same pitch that hosted the England-India match on Sunday, and it remained the same kind of pitch: flat but progressively slower. It also meant the square boundaries were the same - short on one side, long on the other. Both teams picked their teams with the boundaries rather than the surface in mind: spinners Kuldeep Yadav and Mehidy Hasan went out, and seamers Bhuvneshwar Kumar and Rubel Hossain came in.
Batting first was a no-brainer, and Rohit and Rahul gave India the perfect start. Bangladesh's bowlers took a while getting used to the conditions, and offered plenty of hittable balls, with Rohit in particularly damaging form, pulling Mashrafe Mortaza and launching Saifuddin over extra-cover for big sixes in the first six overs. Bangladesh could have dismissed him in between, for 9, but Tamim dropped a sitter at deep square leg when he miscued a pull off Mustafizur. That miss will go down alongside the no-ball from the 2015 World Cup quarter-final in the annals of what-if moments in Rohit v Bangladesh.
Rohit made Bangladesh pay for the miss, and much as he did against Pakistan batted at a higher tempo than is usually the case in the early parts of his big ODI innings. There were drives all around the ground and a number of his trademark pulls, but what was also apparent was a willingness to go hard at balls wide of off stump, as seen in a couple of sliced boundaries backward of point early on.
This aggression may well be a product of having Rahul - who is still finding his feet as an ODI batsman - rather than Shikhar Dhawan at the other end. Rahul began in more circumspect fashion, before unfurling a series of pretty drives and flicks once he was past 20.
The only Bangladesh bowlers to come to terms with the conditions initially were Shakib - who bowled to the right-hand batsmen with the short boundary to the leg side, and almost never gave them the chance to pull or slog-sweep - and, oddly enough, Soumya. Unlike his quicker colleagues, Soumya varied his pace - between gentle medium and gentler medium - and bowled into the pitch, asking the batsmen to manufacture their own power. A slower ball ended Rohit's innings at 104, off 92 balls, just when whispers about 200 were growing more audible.
As in the England game, the pitch began slowing down around the halfway mark of the first innings, and the other bowlers also began following Soumya's example. Runs became harder to come by, and a frustrated Rahul nicked off trying to slash Rubel.
Virat Kohli looked bright and enterprising in scoring 26, before failing to get enough power into his shot while trying to pull Mustafizur: this time the fielder at deep square leg held on. Pandya came and went in the same over, edging Mustafizur's cutter to wide slip, and suddenly Bangladesh were back in the game.
Ben Stokes put England back on track after a similar stutter on Sunday, and Rishabh Pant threatened to play that role for India today, smoking three successive fours off Saifuddin immediately after Mustafizur's double-strike. But he fell for 48, trying to slog-sweep Shakib to the longer boundary, and India's innings lost momentum. MS Dhoni showed flashes of brilliance in a 33-ball 35, but Mustafizur took both him and Dinesh Karthik out with his cutter-bouncer, and he eventually finished with 5 for 59 - his fourth five-for in ODIs and his third against India.
India only made 63 in their last ten overs. It left Bangladesh chasing far less than they might have been - 350 looked a distinct possibility when Rohit was still at the crease - and on another day they might well have pulled it off. They just didn't manage it on this most important of days.