Zimbabwe ended day two of the first Test with Sri Lanka in a strong position despite a five-wicket haul for Lasith Embuldeniya at Harare Sports Club.
The hosts, playing their first home Test since 2017, finished day one on 189-2 thanks to half centuries from Prince Masvaure, Kevin Kasuza and Craig Ervine.
Ervine was eventually dismissed for 85 on Monday when Suranga Lakmal (3-53) got one to nip back in and clatter the stumps.
Embuldeniya led the way for Sri Lanka with 5-114 as they continued to make inroads, but Sikandar Raza (41) and Donald Tiripano (41 not out) helped Zimbabwe to 358 all out.
Captain Dimuth Karunaratne (12 not out) and Oshada Fernando made a promising start in reply for the tourists, but Tiripano's fine day continued when he cleaned up the latter for 21.
Tiripano extracted the same movement Lakmal exploited by flattening Fernando's off stump, Kusal Mendis (6 not out) saw Sri Lanka through to 42-1 - trailing by 316 runs - along with his skipper when bad light brought play to a close.
Day three is set to start at 09:54 local time following that earlier finish.