Bangladesh opener Soumya Sarkar set things rolling with a maiden T20I fifty off 30 balls.
Jeevan Mendis, playing in his first T20I since 2013, struck twice in his first over and accounted for Soumya Sarkar and debutant Afif Hossain.
Mushfiqur Rahim helped anchor Bangladesh to 193/5, their highest score in T20Is.
Sri Lanka opener Kusal Mendis's aggressive innings of 53 off 27 set Sri Lanka up for a record chase.
After Mendid's departure, Dasun Shanaka walked in at No. 4 and struck 42 off 24 balls to accelerate the win.
Thisara Perera chipped in with 39 off 18 balls to hand Sri Lanka a win with 20 balls to spare and broke them out of the rut of eight consecutive T20I losses.