Niroshan Dickwella and Asela Gunaratne hit crucial half centuries to guide Sri Lanka to their highest-ever run chase as the hosts defeated Zimbabwe by four wickets on the final day of an intriguing one-off Test on Tuesday.
Chasing 388 for a win, the hosts, who had lost their first one-day international series against Zimbabwe prior to the Test, had been reduced to 203 for five before Dickwella and Gunaratne combined in a stand of 121 to anchor the chase.
Dickwella was out for 81 after posting his highest Test score while Gunaratne, who battled on despite suffering from a hamstring injury, remained 80 not out.
Sri Lanka's previous highest run chase was against South Africa in 2006 when they made 352-9 in the fourth innings in Colombo. Their total of 391-6 was the fifth highest run chase by any team in Tests.
The touring side, chasing their first Test win against Sri Lanka, made a good start to the final day when they picked up two early wickets through captain Graeme Cremer after the hosts had resumed on 170-3.
The leg-spinner, who took his maiden five-wicket haul in the first innings, took his second innings tally to four victims when he sent back Kusal Mendis, who made 66, and former captain Angelo Mathews for 25.
However, Sri Lanka fought back through Dickwella and Gunaratne before the former was caught by wicketkeeper Regis Chakabva off left-arm spinner Sean Williams.
Chakabva, however, had an otherwise forgetful day behind the stumps as he missed chances to get both batsmen out.
"Disappointing but credit to Sri Lanka... to chase 380 on a day-five pitch is pretty special," Cremer said at the presentation.
"So credit to them, but credit to our guys as well. The way the guys fought and got the runs on the board and pushed Sri Lanka till he last day was great.
"The one-day series is a high point for us, we brought that confidence into the Test match and it gave us the belief that we could push the big teams."
Sri Lanka spin spearhead Rangana Herath was named player of the series for taking 11 wickets over the two innings, while Gunaratne was named player of the match for scores of 45 and 80 not out and a two-wicket haul in the first innings.
Dinesh Chandimal, who replaced Mathews as captain, will now lead Sri Lanka in a three-Test home series against India starting on July 26.
"It's been a really good five days, so credit goes to all the players, they stuck to the plans and went there and did their best," Chandimal said.
"It's always tough when you're batting in the fourth innings but I told the team that they should play their normal game and they played some outstanding innings, especially Dickwella and Asela."