India retained the Asia Cup with a three-wicket win off the last ball against a fighting Bangladesh who were anchored by a maiden hundred from opener Liton Das in Dubai on Friday.
India made heavy weather of a modest 223-run target as Bangladesh fought for every run before the title holders achieved victory off the last ball watched by a capacity 25,000 holiday crowd at Dubai stadium.
Das held the innings together during his 117-ball 121 which featured a dozen boundaries and two sixes but Bangladesh, who were put into bat, were all out in 48.3 overs despite a solid opening stand of 120 with Mehidy Hasan.
With their settled opening pair of Rohit Sharma and Shikhar Dhawan, India were expected to run away with victory, like they did in the previous matches but Bangladesh were not ready to give up without a fight.
Dhawan was dismissed for 15 and Sharma for a punishing 55-ball 48, studded with three sixes and as many boundaries.
Dinesh Karthik (37) and Mahendra Singh Dhoni (36) added 54 for the fourth wicket but once both were dismissed Bangladesh looked like pulling off an upset.
Ravindra Jadeja (23) and Bhuvenshwar Kumar (21) brought the target within India's reach through a 45-run stand for the sixth wicket but Bangladesh removed them both with eight runs still needed.
India then required six off the last over and one off the final delivery which came as a leg-bye. Kedar Jadhav finished with 23 not out.
India won the Asia Cup -- under a Twenty20 format -- in Bangladesh in 2016.
Friday's result meant Bangladesh lost in a second Asia Cup final after coming up just short by two runs in the 2012 final against Pakistan at home.
Earlier Bangladesh lost all their wickets for 102 runs in a major middle order collapse after a brisk opening stand of 120.
Hasan was promoted to open the innings and he and Das attacked India's pace-cum spin attack.
But once Hasan was caught off Jadhav in the 21st over the innings collapsed with Bangladesh losing four more wickets by the time the score reached 151.
Hasan hit three boundaries in his 59-ball 32 while Soumya Sarkar made a 45-ball 33 with a boundary and a six.
Former captain Mushfiqur Rahim, who scored 144 and 99 earlier in the tournament, also hold out off Jadhav who finished with 2-41. Rahim made just five.
Bangladesh's cause was not helped by three run-outs while left-arm spinner Kuldeep Yadav returned with the best figures of 3-45.