India survived in incredible fashion to keep their hopes of a semifinal place at the World Twenty20 very much alive with a dramatic one-run victory over Bangladesh in Bangalore. The hosts had appeared set to fall victim to the biggest upset of the tournament to leave their chances hanging by a thread ahead of their final group game against Australia.

Bangladesh needed just 11 runs to win from their final over and two from their final three balls. But somehow they threw it away. After Hardik Pandya had already gone for two boundaries to leave Bangladesh’s victory appearing a mere formality, both Mushfiqur Rahman and Mahmudullah were caught playing unnecessary aerial shots when singles would have done the job.

It was all set up for an unbearably tense final ball. Bangladesh needed two runs to win and one run to force a decisive Super Over. The pressure was all on 22-year-old Pandya, who managed to beat the bat of Shuvagata Hom outside off-stump. Still the single and a tie was a possibility, but Dhoni had just enough pace in his 34-year-old legs to sprint up to the wicket and whip off the bails just in time.

Hardik Pandya, Bangladesh vs India cricket Hardik Pandya celebrates as India beat Bangladesh on the final ball at cricket's World T20. Photo: Getty Images

This was far from a vintage performance from India, either with the bat in producing a total of 146 or in the field in dropping a trio of catches. In truth, they should have gone down to defeat and Bangladesh should have recorded a first-ever T20 victory over India.

But the fact that India came through to save their skin in such remarkable circumstances could be the turning point for Mahendra Singh Dhoni's side, who only against Pakistan have backed up their billing of  pre-tournament favorites. Before any thought of lifting the trophy, though, they still need to beat Australia in their final match on Sunday. For Bangladesh, meanwhile, a defeat that will surely live long and painfully in their memories means they are officially eliminated from the competition after their third straight loss.

India had beaten Bangladesh twice in the recent Asia Cup, including in the final, to build on their impressive form in Twenty20 cricket. They have stumbled in the World T20, though, not least in an opening defeat to New Zealand that put them immediately under pressure in front of a demanding home public.

That pressure was in full evidence on Wednesday. India had been put into bat by Bangladesh on a slow pitch, and, in contrast to recent matches, had gotten off to a good start. But openers Rohit Sharma and Shikhar Dhawan were dismissed in back-to-back overs to leave India 45-2. And it became the pattern of India’s innings that their batsmen got going but couldn’t hang around long enough to make a real impression.

So often, not least against Pakistan last time out, it has been Virat Kohli who has carried India through. This time, though, having already been dropped earlier on, he was gone for 24 as Shuvagata Hom caught him trying a sweep shot. Once more, India’s other batsmen couldn’t step up and take on the responsibility.

Still, a total of 146 allowed both teams to fancy their chances heading into Bangladesh’s response. Bangladesh lost an early wicket, with Mohammad Mithun being caught from a fine high catch by Pandya on the boundary. But the catching thereafter left a lot to be desired. What looked for a long time being the pivotal drop came from Jasprit Bumrah as he put down a simple catch from Tamin Iqbal. At the time the Bangladesh opener was on just 16, but he would go onto make a crucial 35 that provided the foundation for his team’s chase.

Sabbir Rahman and Shakib Al Hasan then made valuable contributions to put Bangladesh firmly in the driving seat. India hit back, with key wickets from spinners Ravindra Jadeja and Ravichandran Ashwin, while some on-the-mark Yorkers from Bumrah helped slow up Bangladesh and set up the chaotic final over that paved the way for a most unlikely, but massively important, victory.