Rangana Herath became only the third bowler to claim a five-wicket haul against all Test-playing nations to put Sri Lanka firmly on course for a series victory over Zimbabwe.
Muttiah Muralitharan and Dale Steyn were the only other men to have completed the set before veteran spinner Herath took 5-89 as Zimbabwe were all out for 272 in reply to 504 on day three of the second Test at Harare Sports Club.
Stand-in captain Herath was well supported by Kusal Perera (3-51) and Suranga Lakmal (2-55) on Tuesday, with Zimbabwe losing their last five wickets for only 19 runs after Brian Chari top scored with 80.
The in-form Dimuth Karunaratne was unbeaten on 54 and the tourists were 102-4 when stumps were drawn, leading by 334 to leave Zimbabwe surely facing a 2-0 whitewash.
Lakmal and Herath applied intense pressure when Zimbabwe resumed on 126-2, with just seven runs added in as many overs before the former had Craig Ervine (64) well caught by Karunaratne at first slip.
Chari dug in, but found runs hard to come by and rode his luck until his 158-ball knock - which included two sixes and a further nine boundaries - came to end when Herath bowled him through the gate.
Sean Williams (58) scored more freely, dispatching Lakmal for a cover drive to the boundary and reverse sweeping Herath for four then getting a life on 29 when Kusal Perera missed a stumping off the bowling of his namesake Dilruwan.
Zimbabwe were 210-5 when Herath got rid of Malcolm Waller (18) just before lunch, but a positive Williams brought up his half-century by guiding Lahiru Kumara over the slips to the third man boundary.
Williams' dismissal soon after sparked a Zimbabwe collapse from 253-5 to 272 all out in the space of just seven overs, with Herath matching a feat achieved by only South Africa paceman Steyn and former team-mate Muralitharan by trapping Carl Mumba leg before.
Mumba took 3-31 to reduce the tourists to 84-4, but there was no shifting Karunaratne despite a couple of mix-ups with suspect running between the wickets as he made a third half-century in four innings to strengthen Sri Lanka's grip on the Test.