Sri Lanka denied Zimbabwe their first Test series away win in 16 years by chasing down a record-breaking 388 to win the one-off Test by four wickets in Colombo.
Sri Lanka win by four wickets
Zimbabwe 1st inns: 356 (Ervine 160, Butt 36, Waller 36; Herath 5-116)
Sri Lanka 1st inns: 346 (Tharanga 71, Chandimal 55, Mathews 41, Gunaratne 45; Cremer 5-125)
Zimbabwe 2nd inns: 377 (Raza 127, Waller 68, Cremer 48, Moor 40; Herath 6-133, Perera 3-95)
Sri Lanka 2nd inns: 391-6 (Dickwella 81, Gunaratne 80*, Mendis 66, Karunaratne 49; Cremer 4-150)
Sri Lanka denied Zimbabwe their first Test series away win in 16 years by chasing down a record-breaking 388 to win the one-off Test by four wickets in Colombo.
Niroshan Dickwella (81) and Asela Gunaratne (80 not out) shared a sixth-wicket century partnership to help Dinesh Chandimal's side complete the highest fourth-innings chase in Sri Lanka - beating Pakistan's 382 for three two years ago.
It was also the highest successful run chase in Sri Lanka's Test history, and the fifth highest ever by any nation.
It also helped Sri Lanka and avoid further embarrassment against Zimbabwe.
The African nation had beaten Sri Lanka 3-2 in the one-day international series and came close to adding the islanders to their list of away Test scalps following previous series victories in Pakistan and Bangladesh.
They were in pole position to win when spinner Graeme Cremer removed Kusal Mendis, for 66, and Angelo Mathews to take his match haul to nine wickets.
But, from 203 for five, Dickwella and Gunaratne dragged Sri Lanka back on track with a stand of 121 in 31 overs until the former, 19 runs short of a maiden Test century, paid the price for attempting to reverse-sweep Sean Williams and was caught behind.
Gunaratne remained firm and saw his side home with an unbeaten 80, alongside Dilruwan Perera (29no), to help Sri Lanka finish on 391 for six and ensure their country of a first Test series since 2016.
Sri Lanka left themselves well-placed for a record chase on the final day of their Test against Zimbabwe in Colombo.
The tourists set the home side a lofty target of 388 after Sikandar Raza's 127's steered them to 377 all out on the fourth afternoon, Rangana Herath finishing with six wickets.
That would be the highest ever successful chase in the country, beating Pakistan's 382 for nine two years ago, but it remains very much in sight as Sri Lanka reached 170 for three at stumps.
Dimuth Karunaratne's 49 set the tone at the top of the order but Graeme Cremer removed both Upul Tharanga and Dinesh Chandimal to keep Zimbabwe in the game.
Kusal Mendis made a fluent 60 not out and his partnership with former skipper Angelo Mathews (17no) should hold the key to the match with 218 still needed for victory.
Sikandar Raza led a vital fightback as Zimbabwe battled back from the brink to leave their Test match against Sri Lanka in the balance in Hambantota.
Having wrapped up the hosts first innings for 346 in the morning session, Graeme Cremer taking two of the final three wickets to claim five for 125, Zimbabwe's top order crumbled.
Coming to the crease with a slim 10-run lead they were reduced to 59 for five, veteran spinner Rangana Herath responsible for all but one of the dismissals.
But Raza dug in for stumps, making 97 not out from number six and forging momentum-shifting partnerships with Peter Moor (40) and Malcolm Waller (57no).
The tourists closed on 252 for six, 262 ahead, but with all results still possible.
Zimbabwe narrowly held the upper hand after day two of their one-off Test against Sri Lanka after reducing the hosts to 293 for seven in reply to 356.
Craig Ervine finished on 160 as he and Donald Tiripani added 12 to Zimbabwe's overnight 344 for eight before becoming the last two wickets to fall. Tail-ender Tiripano's removal for 27 gave Rangana Herath figures of five for 116.
Several Sri Lankans got starts in response, but none went on further than Upul Tharanga's 71, which ended when he was run out at the non-striker's end by a Dinesh Chandimal drive deflected on to the stumps by bowler Tiripano.
New captain Chandimal added 55 and his predecessor Angelo Mathews 41, while Dilruwan Perera made 33 before falling to a brilliant run-out. Tarisai Musakanda made a diving stop at point and scooped the ball up for Malcolm Waller to throw to the keeper.
Craig Ervine hit his second Test century as Zimbabwe piled on 344 for eight against Sri Lanka in Colombo.
The 31-year-old ended the first day of the one-off Test unbeaten on 151, having cracked 13 fours and a six.
Ervine helped his side recover from a precarious 38 for three by posting his highest Test score, and the second highest by a Zimbabwean in Sri Lanka.
Wickets fell regularly at the other end but Sikandar Raza and Malcolm Waller chipped in with 36 apiece, while Donald Tiripano contributed 24 to an unbroken ninth-wicket partnership of 62.
It was a tough first day in charge for new Sri Lanka captain Dinesh Chandimal, who took over this week after Angelo Mathews resigned in the wake of the shock one-day series defeat by the same opposition
Rangana Herath was the pick of the home bowlers with four for 106.