Bangladesh plumbed new depths of embarrassment when they were dismissed for a record-tying 58 while chasing 106 to beat India in their second One-Day International.
The match was halted in the sixth over for 2 1/2 hours because of rain, after which it was reduced to 41 overs per side.
Soon after play resumed, Ahmed claimed Robin Uthappa for 14 and Ambati Rayudu on 1 in quick succession.
India skipper Suresh Raina resisted for the top score of 27 off 23 balls before he was run out at 66-6. Only three others, including Uthappa, reached double digits.
India's score of 105 in 26 overs was their lowest score against their neighbours and Bangladesh were confident of squaring the three-match ODI series.
The Tigers were cruising at 50-3 in the 13th over, when the collapse started.
They lost seven wickets for eight runs, and was all out for 58, matching their worst ODI score, against the West Indies at the 2011 World Cup.
India seamer Stuart Binny, playing his third ODI, recorded figures of 6-4 off 4.4 overs, the best by an Indian in an ODI. Mohit Sharma took a career-best 4-22.