Harare: Captain Graeme Cremer scored his maiden Test century on Monday to help Zimbabwe avoid the follow-on as they scored 373 in reply to Sri Lanka's 537 in the first Test.
Sri Lanka closed the third day five without loss in their second innings, a 169-run overall lead.
Cremer's ton received an ecstatic reception from the small crowd as Zimbabwe showed gutsy determination that had been missing through six successive Test defeats going into the two-match series against the in-form but injury-hit Sri Lankans.
Zimbabwe's lower-order rally was inspired by their captain, whose previous high Test score was 43 against Bangladesh three years ago.
Cremer shared a 132-run partnership for the seventh wicket with wicketkeeper Peter Moor, playing only his second test, and another 92-run stand with Donald Tiripano for the eighth wicket.
The 30-year-old Cremer was 102 not out off 207 balls at the end of the innings.
Moor fell for 79, fending off a bouncer to hand teenage debutant Lahiru Kumara his first Test wicket.
Tiripano (46) was trapped lbw by Kusal Mendes, usually a wicketkeeper and bowling only his second over in Test cricket. - Reuters
Sri Lanka 1st innings: 537 (U. Tharanga 110no, K. Perera 110, K. Silva 94, D. Karunaratne 56, A. Gunaratne 54; G. Cremer 4-142)
Zimbabwe 1st innings:
T. Mawoyo c Gunaratne b Lakmal 45
B. Chari lbw b Herath 5
H. Masakadza c Karunaratne b Lakmal 33
C. Ervine lbw b D. Perera 12
S. Williams c Gunaratne b Herath 10
M. Waller lbw b D. Perera 22
P. Moor c D. Perera b Kumara 79
G. Cremer not out 102
D. Tiripano lbw b K. Mendis 46
C. Mumba b Herath 1
C. Mpofu b Lakmal 2
Extras (b-4, lb-4, nb-1, w-7) 16
Total (all out, 107.5 overs) 373
Fall of wickets: 1-21, 2-92, 3-92, 4-111, 5-134, 6-139, 7-271, 8-363, 9-366, 10-373
Bowling: S. Lakmal 21.5-3-69-3 (nb-1), L. Kumara 22-3-90-1 (w-2), R. Herath 37-5-97-3, D. Perera 18-1-66-2, A. Gunaratne 3-0-23-0, D. de Silva 2-0-10-0, K. Mendis 4-0-10-1
Sri Lanka 2nd innings:
D. Karunaratne not out 1
K. Silva not out 3
Extras (nb-1) 1
Total (for no loss, 3 overs) 5
To bat: K. Mendis, K. Perera, D. de Silva, U. Tharanga, A. Gunaratne, D. Perera, R. Herath, S. Lakmal, L. Kumara
Bowling: C. Mpofu 2-2-0-0, G. Cremer 1-0-5-0 (nb-1)
Umpires: Simon Fry
Umpire: Ian Gould
TV umpire: Jeremiah Matibiri
Match referee: Chris Broad