After an 11-year gap, the tigers secured a significant victory against India in Asia Cup. This triumph marks their first win over India in the Asia Cup since their 2012 encounter on home turf.
India, who had already booked a meeting with Sri Lanka in Sunday's final in Colombo, faltered in their chase of 266 despite a valiant 121 by opener Shubman Gill.
Mustafizur Rahman took three wickets while debutant Tanzim Hasan Sakib and Mahedi Hasan claimed two each as Bangladesh bowled out India for 259 to end their tournament on a high ahead of the upcoming ODI World Cup.
India rested their key players including Virat Kohli and pace spearhead Jasprit Bumrah in the inconsequential clash.
Skipper Rohit Sharma elected to bowl first to test their batting under lights, which has been difficult in the Sri Lanka leg of the tournament hosted by Pakistan.
Bangladesh slipped to 59-4 before a 101-run stand between Shakib and Towhid Hridoy, who made 54, rebuild the innings and with lower-order contribution posted 265-8 in 50 overs.
Hridoy and Shakib hit back with regular boundaries before pace bowler Shardul Thakur returned for a second spell and got Shakib bowled.
Ravindra Jadeja soon got his 200th ODI wicket, but Hridoy kept up the charge and reached his fifty with a boundary before falling to Shami.
Nasum Ahmed, a left-arm spinner who is known to slog with the bat, also contributed with 44 while Mahedi added 29.
Thakur took three wickets while Shami returned figures of 2-32.
In reply, India lost Rohit in the first over as he got caught out off Taskina, a 20-year-old fast bowler, who struck again to put India in trouble at 17-2.
Gill stood firm and put on key partnerships with KL Rahul (19) and then Suryakumar Yadav (26) but Bangladesh bowlers kept chipping away with wickets.
Gill, who hit eight fours and five sixes in his 133-ball knock, reached his hundred off Tanzim and bowed to the dressing room.
He kept up the charge as he hit Mahedi for a huge six over mid-wicket but the bowler had his revenge on the next ball to get the batsman caught out.
Axar Patel attempted to pull off the chase in his 34-ball 42 but fell to Mustafizur and the innings soon ended in 49.5 overs.
Bangladesh ended the tournament with two wins including one in the group stage against Afghanistan.
Babar Azam's Pakistan crashed out of the tournament after losing a knockout Super Four contest to Sri Lanka at the same venue.