Hosts India snatched victory from the jaws of defeat to keep alive their hopes of reaching the World Twenty20 semi-finals with a dramatic one-run win over Bangladesh.
Bangladesh, chasing 147 for victory in the Group Two match, needed 11 runs off the last over bowled by seamer Hardik Pandya and made the perfect start as Mushfiqur Rahim (11) smashed fours off the first two balls.
However, they then lost three wickets in four deliveries as a jubilant India team scraped over the line to climb to second in the table while their opponents remained bottom following a third defeat.
India, under pressure after losing to New Zealand in their opening match, were put in to bat at the start of the day and lost both openers in quick succession.
Virat Kohli (24) and Suresh Raina (30) steadied the ship by adding 50 for the third wicket but a disciplined performance by Bangladesh's bowlers held India in check as they posted a modest total of 146 for seven.
The home spinners then took control with Bangladesh unable to get to grips with Raina, Ravichandran Ashwin and Ravindra Jadeja.
Ashwin struck with his second ball, removing Mohammad Mithun for one.
Fellow opener Tamim Iqbal (35), back in the side after food poisoning, and Sabbir Rahman (26) shared a stand of 44 before both were stumped by Mahendra Singh Dhoni.
Ashwin then picked up the important wicket of Shakib Al Hasan (22) while Jadeja bowled Mashrafe Mortaza for six.
Mahmudullah hit back with a quickfire 18 and Soumya Sarkar struck a run-a-ball 21 to haul Bangladesh within sight of victory.
However, a thrilling final over saw Mushfiqur caught at deep mid-wicket by Shikhar Dhawan.
Mahmudullah was also snapped up by Jadeja in the deep off the next ball and, needing one run to take the game into a super over, Bangladesh number 11 Mustafizur Rahman was run out by keeper Dhoni after completely missing a wide delivery.