Dinesh Chandimal marked his maiden outing with the bat as captain by scoring a half-century to help keep Sri Lanka in contention against Zimbabwe.
The tourists frustrated Sri Lanka on day one of the one-off Test in Colombo to reach 344-8, but could only add 12 runs on Saturday.
Centurion Craig Ervine was the last man to go on 160, finally falling to Lahiru Kumara to leave Chris Mpofu - who had only faced one ball - as the not-out batsman.
Chandimal, who replaced Angelo Mathews as skipper following his decision to stand down from the role in all formats after the shock one-day international series loss to Zimbabwe, led by example with a solid 55 as the hosts closed on 293-7, 63 runs behind.
Upul Tharanga (71) - captain in the shorter formats - was the pick of the Sri Lanka batsmen, but he was cut short in his prime after being run out by Donald Tiripano at the non-striker's end.
Mathews added 41, with Asela Gunaratne (24 not out) and Rangana Herath (5 not out) the men left standing.
Herath had earlier claimed the scalp of Tiripano (24) to complete a five-wicket haul, moving him above Malcolm Marshall and Waqar Younis with 378 Test wickets.
Chandimal will now hope to see some lower-order resistance from his side as he seeks a winning start to his captaincy.