Sri Lanka made a solid start to their first innings reaching 122 for two before bad light and rain brought an early close to the second day of the second Test against Zimbabwe.
The visitors are still 284 runs behind the hosts who lost their last four wickets in the morning to be bowled out for 406.
Sri Lanka openers Dimuth Karunaratne and Oshada Fernando added 94 for the first wicket before both fell for 44.
Kusal Mendis, who was dropped at short leg on one and again at midwicket on 13, both times off Sikandar Raza, was 19 not out at the close with first Test double-centurion Angelo Mathews on four.
Karunaratne was the first to go, the Sri Lankan captain picking the wrong length to sweep a full delivery from off-spinner Raza and falling leg before.
In the meantime, Donald Tiripano was maintaining a steady line and got his reward when, shortly after, Fernando drove loosely.
Wicketkeeper Regis Chakabva, who had earlier dropped Fernando off Victor Nyauchi, moved quickly to take a sharp diving catch to his right.
The left-arm spinner Lasith Embuldeniya, who took a hammering, mainly at the hands of centurion Sean Williams, picked up three of the last four wickets in the morning session to finish the Zimbabwe innings with four for 182.
Resuming on 352 for six, Zimbabwe lost Chakabva for his overnight 31 in the sixth over of the morning after he gave a faint edge off Embuldeniya to wicketkeeper Niroshan Dickwella.
Debutant Tinotenda Mutombodzi made 33 before missing a sweep to fall leg before to Dhananjaya de Silva who finished with three for 71.
Some resistance from the last three took the Zimbabwe total past 400 but Embuldeniya accounted for both Tiripano and Nyauchi who was brilliantly caught by De Silva at first slip.