Chasing 155/6, Sri Lanka reached their destination with seven deliveries to spare. The Lankans started their innings against Bangladesh in confident fashion with the opening partnership of Kusal Perera and makeshift captain Upul Tharanga adding 65 runs in seven overs.
Bangladesh limited-over skipper Mashrafe bin Mortaza, playing his second and penultimate T20I after announcing retirement from the shortest format, initiated the first breakthrough in the seventh over. Tharanga was the batsman to depart for 24.
But Kusal was in aggressive mood and scored a match-winning 77 off 53 balls, composed with nine sweetly timed boundaries and a six.
Mashrafe was the most successful bowler for the Tigers with two wickets, conceding 32 runs.
Kusal was adjudged player of the match.
Earlier, Mashrafe won the toss and elected to take first guard. Seamer-allrounder Mohammad Saifuddin was handed his maiden T20I cap.
Bangladesh made the worst possible start as opener Tamim Iqbal was cleaned up by returning speedster Lasith Malinga in the second ball of the innings. The other opener Soumya Sarker, in contrast, got lucky as Malinga missed a tough caught and bowled chance.
But No 3 batsman Sabbir Rahman and Soumya started counter-attacking the opposition and formed a quick 57-run second-wicket stand off just 29 balls.
Sabbir (16) was caught short of the crease in the sixth over from a direct throw by Seekkuge Prasanna. In the same over, Soumya got out while trying to clear the boundary. Caught at long on, Soumya made a brisk 20-ball 29 with three boundaries and a six.
Bangladesh then suffered a mini collapse as Mushfiqur Rahim (eight) and Shakib al Hasan (11) were dismissed in the next three overs. So from a good start, Bangladesh were struggling a little bit in the middle stages.
But Mahmudullah and Mosaddek Hossain stitched together a valuable 57-run partnership for the sixth wicket. Mahmudullah was eventually dismissed by Malinga in the 19th over after making a 26-ball 31.
Mosaddek remained not out on 34 off 30 balls as Bangladesh posted 155 in their stipulated 20 overs. Malinga took two wickets giving away 38 runs.
The second and final T20I will be played at the same venue on Thursday.
158/4 in 18.5 overs (Kusal 77, Tharanga 24, Mashrafe 2/32) beat Bangladesh
155/6 (Mosaddek 34*, Mahmudullah 31, Soumya 29) by six wickets