Opener Kusal Perera top-scored with 64 off 44 balls to steer Sri Lanka to 168-7 in the first Twenty20 international against Bangladesh in Chittagong on Wednesday.
The left-hander hit seven boundaries and a six, but found little support from the rest of the top order after the tourists were sent in to bat at the Zahur Ahmed Chowdhury stadium.
Sri Lanka were reduced to 120-6 in the 15th over, before Nuwan Kulasekara and Thisara Perera boosted the total with a seventh-wicket partnership of 44 from 31 balls.
Kulasekara made 31 off 21 balls with one four and two sixes, while Thisara Perera returned unbeaten on 19.
Bangladesh's stand-in captain Mashrafe Mortaza gave his team a flying start by bowling Tillakaratne Dilshan off the sixth ball of the match before the batsman had scored a run.
Dinesh Chandimal, Sri Lanka's Twenty20 captain, and Kusal Perera shared a second-wicket stand of 54 off 35 balls before Shakib Al Hasan grabbed two wickets in successive overs.
Debutant left-arm spinner Arafat Sunny claimed a wicket with his fifth ball in international cricket as Seekkuge Prasanna holed out in the deep to reduce Sri Lanka to 87-4 in the 10th over.
It became 120-6 as Sunny removed Kusal Perera and Angelo Mathews was run out after a mix-up with Thisara Perera.
Mortaza led the hosts after Mushfiqur Rahim was rested due to a hairline fracture in the left hand and Tamim Iqbal stepped down as vice-captain to concentrate on his batting.
Sri Lanka were without frontline batsman Mahela Jayawardene, who will miss the entire limited-overs series of two Twenty20 games and three one-day internationals due to a hand injury.
Sri Lanka won the preceding two-Test series 1-0.