Bangladesh, looking for a series-levelling win after losing the first Test by an innings and 248 runs last week, appeared set for a long haul after Sri Lanka won the toss and elected to bat.
But they struck in quick succession just after the drinks break to share the honours in the morning session.
Openers Dimuth Karunaratne and Kaushal Silva managed just eight runs in the first eight overs and plodded to 30-0 after 15 when Bangladesh broke through.
Off-spinner Sohag Gazi, who shared the new ball with Al-Amin Hossain, claimed first Test century-maker Silva leg-before for 11.
Left-hander Karunaratne settled in to score 31 when he slashed at a wide ball from Al-Amin and was caught at point to make Sri Lanka 49-2.
Kumar Sangakkara (15 not out) and Mahela Jayawardene (10 not out) were together at the crease when lunch was called.
Sri Lanka went into the Test without frontline left-arm spinner Rangana Herath and seamer Shaminda Eranga, who were both ordered to return home due to injuries.
They were replaced by off-spinner Ajantha Mendis and paceman Nuwan Pradeep, the only changes from the side that won the first Test.
Bangladesh brought in batsman Imrul Kayes, all-rounder Mohammad Mahmudullah and left-arm spinner Abdur Razzak in place of Marshall Ayub, Rubel Hossain and Robiul Islam.


Latest News from Sports News Desk