India 146 for 7 (Raina 30, Mustafizur 2-34) beat Bangladesh 145 for 9 (Tamim 35, Ashwin 2-20) by one run
Scorecard and ball-by-ball details
How did it come to this?
After 39.3 overs of a pulsating contest in Bangalore, Bangladesh seemed to have a first ever T20I victory against India in their grasp. Two runs needed off three balls, with Mushfiqur Rahim on strike. The game should have been done and dusted, and India were staring at an early exit in the World Twenty20 in their own backyard.
However, Bangladesh proceeded to remarkably offer India a way back into the game, with Mushfiqur and Mahmudullah both being caught in the leg-side boundary off Hardik Pandya. Two needed off one, and suddenly, it was Bangladesh feeling the heat.
Pandya ran in for the final delivery, bowled outside Shuvagata Hom's reach, and MS Dhoni, who had earlier pulled off an outrageous stumping to dismiss the dangerous Sabbir Rahman, ran in 15 yards with one glove and ran out Mustafizur Rahman, who had only just walked into the cauldron.
The one-run win keeps India in their hunt for a place in the last four, with a match against Australia coming up. Bangladesh were heartbroken, having done all the hard work, but falling short by a few inches, quite literally.
Jasprit Bumrah, who bowled a superb third over after a poor start with the ball, gave away just six frantic singles in the penultimate over, leaving Pandya to defend ten runs, which he did only just.
Mushfiqur blasted the second ball for a boundary through the covers after Mahmudullah took a single off the first ball. Mushfiqur then got a second four off his bat handle while attempting a scoop, but he was caught at midwicket off the next ball, with Bangladesh needing two to win off the last two balls. Mahmudullah, who changed ends, fell in similar fashion, betraying his coolness under pressure, but Ravindra Jadeja still had to do extremely well to hold on to the catch.
The rest of the Bangladesh innings was just as frantic. Bumrah misfielded off the first ball and conceded a four; Tamim Iqbal, the batsman who hit the shot, had his eye on the ball and bumped into Ashish Nehra. Tamim needed medical attention and in the same over, he was dropped by Nehra off his own bowling.
Mohammad Mithun holed out at long-on in the third over before Tamim got another life in the next, this time seeing Bumrah drop a sitter at short fine-leg. Sabbir crashed Ashwin soon after, and Tamim took four boundaries off Bumrah, whose line and lengths went awry. Tamim eventually was stumped for 35 in the eighth over. Sabbir, who added couple of more boundaries, was smartly stumped by Dhoni for 26 off 15 balls.
Mashrafe Mortaza promoted himself to No. 5 and started off with a huge six over long-off but the gamble lasted just five balls. There was more madness to come - Shakib was dropped by Ashwin at the deep cover boundary on 8, and he made the most of the reprieve, nailing two sixes on the leg-side. Ashwin had the last laugh, though, getting him caught at slip in his last over. Shakib's 22 off 15 balls was crucial but so too was his dismissal as he got out at a moment when he was timing the ball very well.
Mashrafe seemed to have risen out of his distress over Taskin Ahmed's suspension by bowling a superb four-over spell in which he did not concede a single four or a six for the first time in his career. His captaincy, to use sweepers on both sides of the wicket from the start and bowling changes, was also spot-on. He was backed wholeheartedly by Shakib's four strong overs, while Mustafizur and Al-Amin Hossain took two wickets each.
India could not get off to a good start after their openers were spooked by Shuvagata Hom's initial turn. Rohit Sharma and Shikhar Dhawan had to settle for singles before they struck a six each in the sixth over. Mustafizur had Rohit skying a flick which was caught at midwicket, in the same over. Shakib then trapped Dhawan, who was looking to sweep in the next over, meaning India had two new batsmen having to get settled on a tricky surface.
One of those batsmen was Virat Kohli, fresh off a fine match-winning knock against Pakistan. Here, though, he stuttered through his run-a-ball 24, during which Al-Amin dropped a difficult caught- and-bowled chance in the 11th over. Suresh Raina, who top-scored with 30 off 23 balls, broke a boundary drought that lasted five overs, with a couple of sixes off Al-Amin in the same over.
Kohli got his first six in the 14th over but Hom kept his nerve by bowling the next one full and on the stumps. Kohli missed, and Bangladesh were back in the game by getting India's main man and breaking the 50-run third wicket stand.
Pandya blasted 15 off seven balls before he was brilliantly caught on the square-leg boundary by a fully diving Soumya Sarkar. Al-Amin also accounted for Raina in the same over, ensuring India's slog overs did not go to plan. The hosts managed only 34 runs in the last five overs, with the first 19 balls in that sequence going without a boundary.
In the Asia Cup final, Dhoni had blasted 20 off the penultimate over to all but seal India's win. India's captain was not as explosive with the bat here, but his 13 crucial runs, cunning stumpings and cool run-out with one glove on, made the difference between the two teams.
The night will be remembered in Bangalore for a very, very long time.
Mohammad Isam is ESPNcricinfo's Bangladesh correspondent. @isam84