Three early Bangladesh wickets chasing a revised target of 212 in 40 overs, after a rain break, had given India hope. Then, Tamim Iqbal's dismissal broke his promising partnership with Shakib Al Hasan and then the latter fell leg-before to Sachithra Senanayake with the hosts needing another 77 to win, leaving India still hoping.
But Bangladesh showed enough resolve to beat Sri Lanka by five wickets with 18 balls to spare to sail into the final of the Asia Cup.
That knocked India out of the tournament and the players, who watched the match in their hotel rooms, will troop out of the country for different parts of India with the first group leaving early Wednesday morning.
A capacity Sher-e Bangla National Stadium witnessed Bangladesh reach the final of a tournament featuring Test playing nations for the first time. And for the first time in a tournament Bangladesh have beaten two Test playing nations, having clinched their third-ever victory over India last week.
India, Bangladesh and Pakistan all finished with two wins in three matches. Pakistan were through because they had earned a bonus point against Sri Lanka. India and Bangladesh finished on same points, but having beaten India in the league match, the hosts qualified.
Nazmul Hossain's three prized wickets of skipper Jayawardene, Sangakkara and Dilshan helped Bangladesh get on top early and restrict Sri Lanka.