Zimbabwe gave themselves a decent shot at salvaging a draw from the first Test against Sri Lanka after a lower order fightback helped them avoid the follow on.
Graeme Cremer crunched a maiden Test ton becoming the first Zimbabwean number 8 since Heath Streak in 2003 to score a hundred in a Test.
Sri Lanka managed to bowl Zimbabwe out with just five overs left on day 3 and the hosts on 373 leaving Rangana Herath's men with a lead of 164 in the first innings.
The day began with Zimbabwe on 88 for 1 well poised to take the fight to Sri Lanka but by lunch they found themselves 174 for 6.
Tino Mawoyo (45) and Hamilton Masakadza (33) could add just four runs to the overnight total before both fell to Suranga Lakmal with the score on 92.
Sean Williams (10), Craig Ervine (12) and Malcolm Waller (22) offered little resistance as spin bamboozled the Zim middle order.
Peter Moor (79) and Captain Cremer put on 132 for Zimbabwe's seventh wicket to frustrate the tourists, batting well into the afternoon session before the wicketkeeper became Lahiru Kumara's first Test victim.
Moor failed to deal with a vicious short ball and Dilruwan Perera took a sharp catch to earn the breakthrough.
Cremer then put on 93 with Donald Tiripano (46) to avoid the follow on but when the latter went it seemed the skipper might be cruelly denied a hundred, as debutant Carl Mumba could make only one before he departed.
With number 11 Christopher Mpofu left to face a solitary Herath delivery the crowd cheered raucously as he kept it out, the skipper high-fived the seamer and would complete his century in the next over.
Mpofu didn't last long though departing after 11 balls for 2 becoming Lakmal's third victim.
Cremer was left not out on 102 a supreme effort from the skipper.
Lakmal's 3 for 69 left him as the pick of the Sri Lanka bowlers with Herath also claiming 3 for the cost of 97.
Sri Lanka were left to face a tricky three overs before the close but Kaushal Silva (3 not out) and Dimuth Karunaratne (1 not out) got them safely to the close at 5 for no loss leading by 169 runs.