Spinner Ajantha Mendis finished with six for 99, having claimed both the remaining wickets after Bangladesh resumed the day at 409-8.
Off-spinner Dilruwan Perera supported Mendis with three wickets, while seamer Suranga Lakmal took one.
When Sri Lanka batted a second time, off-spinner Mohammad Mahmudullah dismissed both openers, Dimuth Karunaratne and Silva, in his first three overs before lunch to make it 49-2.
Left-handed Karunaratne was snapped up smartly in the slips by Nasir Hossain for 15, while Silva was trapped leg-before for 29.
Shakib Al Hasan then claimed Jayawardene leg-before for 11 early in the post-lunch session as Sri Lanka slipped to 78-3.
The tourists won the first Test by an innings and 248 runs in Dhaka last week.
The tourists, who led by 161 runs on the first innings, declared their second knock at 305-4 in the post-tea session of the fourth day's play at the Zahur Ahmed Chowdhury stadium.
Bangladesh, set an improbable target of 467 to record a series-