Sri Lanka scored 187/1 in 48 overs, reducing their deficit by 326 runs at the end of the second day against Bangladesh at Zahur Ahmed Chowdhury Stadium in Chittagong.
Dhananjaya de Silva (104*) hit a century while Kusal Mendis (83*) at stumps on Thursday.
Replying to Bangladesh's 513/10 in 129.5 overs, Sri Lanka got off to a bumpy start losing opener Dimuth Karunaratne in the third ball of the innings.
Mehidy Hasan Miraz got the only Sri Lankan scalp.
Earlier, Bangladesh failed to continue their good work in the second day losing the remaining six wickets for 139 off 39.4 overs.
Mahmudullah Riyad played an unbeaten innings of 83* off 134 balls, while Mominul added just one to his overnight score of 175*.