Raza and Waller stretch Zimbabwe's lead to 262
Zimbabwe 356 and 252 for 6 (Raza 97*, Waller 57*, Herath 4-85) lead Sri Lanka 346 (Tharanga 71, Chandimal 55, Gunaratne 45, Cremer 5-125) by 262 runs
Scorecard and ball-by-ball details
All through the tour, Sri Lanka have had Zimbabwe cornered, and games have threatened to follow a familiar, one-sided form. Yet all through the tour, Zimbabwe have found ways of resisting, of stubbornly holding out, and eventually fighting back.
Day three at Khettarama saw perhaps their most impressive turnaround yet. Having eked out a 10-run first-innings lead in the morning, Zimbabwe found themselves 23 for 4, then 59 for 5. But for the remainder of the day, the middle order would rally around an adventurous Sikandar Raza, and turn the match in dramatic fashion. Having played definitive hands in Zimbabwe's ODI series, Raza stood on the verge of a vital maiden Test ton, finishing the day on 97 off 158 balls. Peter Moor struck 40 and joined him for a sixth-wicket stand of 86. Malcolm Waller did even better, cracking 57 off 76 deliveries in an unbroken seventh-wicket partnership worth 107.
All this means that Zimbabwe now control the Test, and may even have put themselves in a position to pull off the unexpected result of the year. Overturning Sri Lanka in ODIs was surprising enough, but in Tests, the hosts may not have dreamed they would be challenged by the lowest ranked team - one they have consistently thrashed over the past two decades. But with Zimbabwe's lead at 262 their target is already a challenging one. If the score grows by another 100 runs, could become a near-impossible pursuit.
Unusually, Sri Lanka have caught well in this Test, but the bowling has been consistently menace-free. Of the 16 Zimbabwe wickets to have fallen, Rangana Herath has claimed nine. For the second half of day three, he seemed the only bowler capable of beating the Zimbabwe batsmen, and had he not run riot in the first session, Sri Lanka's position would have been even bleaker. Dilruwan Perera was not miserly enough for a bowler who isn't taking wickets, Lahiru Kumara's lines have been too wayward, and Suranga Lakmal has been modest in unhelpful conditions. Sri Lanka are also missing the bowling of Asela Gunaratne, whose tweaked hamstring had substantially hampered his running between the wickets, and now has kept him off the field in the second innings.
The first 10 balls of Raza's innings defined his approach. First ball, he had picked a single to fine leg. After three further singles off the next five balls, he punched a ball out to the cover sweeper and took two. Though his team was threatening to be all out for 120, Raza took seven off the first 10 balls, and batted as if they were 300 for 5. He favoured the lap sweep and the drive off the spinners, and rarely failed to find gaps when he was looking for them.
Perhaps the only real chance in his innings came when he was 31, when he attempted to reverse sweep Herath, but only ended up top-edging the ball. Slip fielder Dimuth Karunaratne - who had already taken two excellent catches in the innings - might have been in a position to make a third take, had he not begun moving squarer in anticipation of where he felt the ball may travel. As it happened, the ball bisected the keeper and slip before skimming away to the third man fence. Raza would hit two more fours in that over to make it Herath's most expensive of the innings. Outside that over, Raza only struck four fours and a six.
Waller was more openly aggressive - but only by a little bit - as he hit eight fours, and repeatedly put bowlers under pressure by scoring singles and twos freely as well. His fourth Test fifty had come off just 54 deliveries, before the final overs of the day prompted a slowdown from both batsmen. Beyond Waller, Zimbabwe also have Graeme Cremer and Donald Tiripano, both of whom have first-class centuries to their names.
Before Raza came to the crease, Herath had knocked out Zimbabwe's top three in his first four overs, before Perera also took a wicket. By lunch, Sri Lanka had had them by the collar, at 23 for 4. Taking the new ball, Herath needed an over to settle, but the first delivery of his second over was of a higher quality than Regis Chakabva had the ability to handle. Breaking more sharply than any of his deliveries in the first over, the ball missed Chakabva's defensive shot, and hit the top of the off stump. That over would go on to be a wicket-maiden, which Herath's next would be as well. This time, having beaten Tarisai Musakanda's inside edge with a slider, Herath tossed the ball up slightly wider, tempted Musakanda into an expansive drive, and then had him caught sharply by Karunaratne at slip.
Herath's next dismissal - in his following over - was perhaps the most controversial wicket of the wicket-filled session. Attempting a big sweep, Hamilton Masakadza was struck in front. There was no doubt the ball would go on to hit the stumps, but perhaps feeling it brushed his glove on the way, Masakadza reviewed the out decision, and there was not enough evidence to overturn the on-field call.
All this followed a milestone for Cremer who became the first Zimbabwe captain to take a five-wicket haul. He had taken two of the last three Sri Lanka wickets in the morning, and had helped eke out a 10-run first innings lead. Cremer now will have plenty to defend as Zimbabwe set their sights on a rare victory against a top-eight team.
Andrew Fidel Fernando is ESPNcricinfo's Sri Lanka correspondent. @andrewffernando