Zimbabwe 272 and 180 for 7 (Ervine 65*, Herath 5-45) need another 311 runs to beat Sri Lanka 504 and 258 for 9 dec (Karunaratne 88, Kusal Perera 62, Cremer 4-91, Mumba 3-67)
Scorecard and ball-by-ball details
Three days between Tests is hardly enough for teams to work on their weaknesses. But this was Zimbabwe's opportunity to prove they had learnt from their mistakes in the first Test, or at least from their first innings in this Test. Going by the evidence of the 45 overs they batted on the fourth day, they haven't.
Rangana Herath, Sri Lanka's stand-in captain, who on the previous day had become just the third bowler after Muttiah Muralitharan and Dale Steyn to complete five-wicket hauls against all Test oppositions, picked up five wickets to leave Zimbabwe in a spin. Along the way, he became the first bowler to take 50 wickets in 2016. Chasing an improbable 491, after Sri Lanka's declaration on 258 for 9 midway through the second session, Zimbabwe slumped to 180 for 7, with first-innings half-centurion Craig Ervine and Donald Tiripano at the crease.
The first three wickets fell in identical fashion - batsmen pressing forward and playing either outside the line or inside the line without any conviction, almost like they were searching for the ball without quite reading the trajectory. The deliveries that got Brian Chari and Hamilton Masakadza were arm balls, while another flighted delivery spun away from the rough to take Tino Mawoyo's edge off a tentative push to Dhananjaya de Silva at slip.
Sean Williams decided the best way to score runs was to step out to the spinners. He was lucky that a couple of mis-hits landed safe. But the visible difference in his approach was that there were no half-measures - a slog sweep off Dilruwan Perera from outside off over deep midwicket underscored that point. Having weathered the early storm against spin, he paid the price for relaxing against the pacers. His ugly waft away from the body resulted in a thick edge to first slip off Lahiru Kumara.
Then Dhananjaya, handed the ball perhaps just to shake things up, had a wicket in his second over when Malcolm Waller looked to drive, much like he did in the first innings, to a ball that drifted away to take the edge through to the wicketkeeper.
Not even the loss of five wickets in the session curbed the instincts of Zimbabwe's batsmen. Peter Moor kept going after the bowlers and struck them well for as long as he was around, before jabbing with hard hands to be caught at silly point. Then came perhaps the ball of the innings when Herath got one to drift in and spin away to square up Graeme Cremer and hit the stumps. It was fitting that the special delivery brought his seventh ten-wicket haul in Tests.
Meanwhile, Ervine, it appeared, was batting on a completely different plane, playing deliveries on merit while taking toll of the half-trackers. Zimbabwe will need him and Tiripano, who in the past has proved to be a handy batsman, to carry on for as possible to at least reduce the margin of defeat.
The first session had been attritional, with Sri Lanka happy to take their time to grind Zimbabwe down. Resuming on 102 for 4, they added 75 in the first session to leave Dimuth Karunaratne facing the prospect of bringing up his fifth Test ton. Asela Gunaratne, the other overnight batsman, made a sparkling 39, driving from the rough and playing with a degree of authority, before falling lbw to Tiripano on 39.
Sri Lanka's intent to up the scoring in the second session was evident from the outset. Given a license to attack, in line with his natural game, Kusal Perera swept, swiped and reverse-swept his way to a half-century off just 61 balls to swell Sri Lanka's second-innings total.
Suranga Lakmal too helped himself like he would in a buffet, picking away leg stump half-volleys and half-trackers to the boundary in an entertaining 47-run ninth-wicket stand. Herath declared when Kusal holed out to long-on for 62, thereby giving his team a day and a half to dismiss Zimbabwe and sweep to 2-0 in his first series as captain.