Cape Town - Sri Lanka held a lead of 334 runs at stumps on day three of the second Test in Harare, despite Zimbabwe reducing them to 102 for four in their second innings.
Sri Lanka may have lost those wickets but were still well ahead because they had bowled the hosts out for 272 earlier in the day, with Rangana Herath bagging a five-fer.
It was the veteran spinner's first five-fer against Zim, and also meant he became just the third bowler to claim a 'Michelle' against all nine other Test nations. Muttiah Muralitharan and Dale Steyn are the other two.
The hosts will be disappointed with their score after starting the day on 126 for two, with both Brian Chari and Craig Ervine sitting pretty on 60 apiece.
Ervine was only able to add four more runs to his score before falling to Suranga Lakmal. Sean Williams then joined Chari and the pair added another 39 runs.
Chari was out for 80, bowled by Herath, and from there it was only Williams who resisted. He went on to record a half ton in a lone battle, as the Sri Lankans shared the tail end spoils.
Sri Lanka went in to bat seven overs before tea and lost no wickets in that time, though the evening was a different story as Carl Mumba claimed three wickets.
He got rid of Kaushal Silva and Kusal Mendis within a few runs of each other, and added first innings centurion Dhananjaya de Silva's wicket as well, for nine.
Upul Tharanga was trapped LBW by Graeme Cremer to put the visitors on 84 for four, leaving Dimuth Karunaratne to rescue the knock. He was on 54 at the close, having ensured a formidable lead.