Colombo - Upul Tharanga hit a brisk half-century to lead a strong Sri Lankan reply to Zimbabwe's first innings 356 on the second day of the one-off Test on Saturday.
Sri Lanka were 77-0 at lunch with Tharanga on 53 and Dimuth Karunaratne on 23. The hosts still trail Zimbabwe by 279 runs.
Tharanga, who registered his seventh Test fifty, smashed seven fours and a six.
Earlier Sri Lanka spinner Rangana Herath claimed his fifth wicket as the visitors lasted just 4.4 overs of the morning session.
Overnight centurion Craig Ervine was the last man out for 160.
Zimbabwe resumed on 344-8 with the Ervine and Donald Tiripano battling on.
Herath ended a stubborn 74-run stand for the ninth wicket with Tiripano (27) mistiming a reverse sweep to get caught at slip. It was Herath's 30th five-wicket haul in his 81st Test.
Paceman Lahiru Kumara took the prized scalp of Ervine, whose second Test century lifted Zimbabwe from a precarious 70-4 on the opening day.
Ervine's 256-ball stay, laced with 13 fours and a six, included a crucial 84-run stand for the fifth wicket with Sikandar Raza (36).