Rohit Sharma scored a fine 56 but India made a mess of what looked like a simple chase when the skipper was batting.
Vijay Shankar who was promoted up the order ahead of Dinesh Karthik struggled to get any sort of timing, ending unbeaten on 17 off 19 balls.
Karthik walked into bat when Bangladesh were on top and India needed a special effort from the experienced batsman. He certainly delivered, scoring 29 off just 8 balls which included three sixes and two boundaries.
Set a target of 167 for victory, India lost in-form Shikhar Dhawan (10) and Suresh Raina (0) early in the chase.
But Rohit and KL Rahul then got together to stitch a 51-run partnership, looking fluent and finding boundaries at ease.
Rohit was at his best, clearing the rope at will and also finding the middle off the bat. Bangladesh got back into the game after both these batsmen were dismissed in quick succession.
Manish Pandey and Vijay Shankar failed to find that big over which would settle the game, allowing Bangladesh to fight back.
India needed 35 off the final 3 overs, when Mustafizur bowled arguably the over of the tournament. He conceded just 1 run and picked the wicket of Manish Pandey.
However, Karthik walked in to change the game completely. 5 were required off the final ball, and Soumya Sarkar was the unlucky bowler who conceded a maximum off the final delivery.
Earlier, put into bat, Sabbir Rahman scored a fine 77 to help Bangladesh reach 166/8 in their allotted 20 overs.
The total looked below par as the Indian spinners led by Yuzvendra Chahal strangulated the Bangladeshi batsmen.
Tamim Iqbal was dismissed early in the piece, with Shardul Thakur pulling off a sensational catch on the boundary line. Experienced Mushfiqur (9) and Shakib (7) couldn't contribute much either.
Sabbir played a lone hand, supported by cameos from Mahmudullah (21) and Mehidy Hassan (19).
Chahal picked up 3/18 in his 4 overs while Washington Sundar - who was also named the man-of-the-series - ended with figures of 1/20. Unadkat too picked up 2 wickets, giving away 33 runs.
Vijay Shankar had a day to forget as he conceded 48 runs off his 4 overs.
First Published: March 19, 2018, 7:50 AM IST