Sikandar Raza closed in on his maiden hundred and put Zimbabwe in sight of a first test victory against Sri Lanka on the third day of their only match at the R Premadasa Stadium on Sunday.
The touring side, who also won their maiden one-day international series against Sri Lanka which finished last week, reached 252-6 in their second innings at the close of play for an overall lead of 262 runs.
The 31-year-old Raza was unbeaten on 97 for his highest test score and has added 107 for the unbroken seventh wicket with Malcolm Waller, who remained 57 not out.
Sri Lankan spin spearhead Rangana Herath (4-85) had helped the hosts to reduce Zimbabwe to 59-5 at one stage but Raza and Peter Moor, who made 40, launched a fightback with a stand of 86 for the sixth wicket.
Earlier, Zimbabwe captain and leg-spinner Graeme Cremer (5-125) took his maiden five-wicket haul to help his side to restrict Sri Lanka to 346 after the hosts had resumed on 293-7.
Sri Lanka have been hampered by a left hamstring injury to all-rounder Asela Gunaratne, who has been told he needs a recovery period of up to 10 days and will not bowl or field in the remainder of the ongoing test.