Sri Lanka needs just three Zimbabwe wickets on the final day of the second test to seal a 2-0 series victory.
Stand-in Sri Lanka captain Rangana Herath took 5-45 on day four on Wednesday to take his match haul to 10 wickets, as Zimbabwe struggled to 180-7 in its second innings, still needing 311 runs for victory.
Left-arm spinner Herath led from the front after Sri Lanka declared its second innings on 258-9, a lead of 490. Opener Dimuth Karunaratne made 88 and Kusal Perera 62 to build that big lead.
Craig Ervine was 65 not out for Zimbabwe but has just tailenders for company as the home team faces a tough task to save the test.