Tillakaratne Dilshan and Lasith Malinga were the key men as Sri Lanka levelled their three-match one-day international series against South Africa with an 87-run win in Wednesday's second contest in Pallekele.
- Related Content
Dilshan hit 86 off 90 balls as the hosts, having won the toss and opted to bat, made 267 all out.
They had looked set for a bigger total but lost a late flurry of wickets, with Ryan McLaren claiming four of them.
It ended up sufficient for victory, though, as Malinga took four wickets of his own and Dilshan three en route to South Africa being bowled out for 180, Hashim Amla's 101 off 102 balls - his second century in successive ODIs - proving in vain.
The first wicket fell with Sri Lanka on 26 as Kusal Perera was removed by Vernon Philander.
Kumar Sangakkara came to the crease to join Dilshan, who subsequently survived a scare when he was dropped by Dale Steyn.
Steyn could be forgiven, with the ball flashing straight back at him following his delivery and striking his thumb, causing him to go down in pain.
Sangakkara then departed, caught behind by Quinton de Kock off Morne Morkel to make it 63 for two, but Dilshan was going strong and he put on 62 for the third wicket with Lahiru Thirimanne (36), who was ousted by Imran Tahir.
His next partner was Mahela Jayawardene, who also came through a nervous moment when a decision to give him out lbw was overturned after a review.
Dilshan's knock - featuring nine fours - then came to an end as he was bowled by JP Duminy, leaving Sri Lanka on 154 for four.
Jayawardene and Angelo Mathews put on 71 for the fifth wicket before the former was dismissed for 48, Tahir striking the stumps.
That was 225 for five and things somewhat fell apart for the hosts' innings after that, with McLaren taking three wickets in the 47th over - seeing off Mathews (34), Nuwan Kulasekara and Ashan Priyanjan, the last two with consecutive balls - and then another to send Ajantha Mendis packing.
Philander wrapped things up for Sri Lanka's batting effort with four deliveries of the final over remaining by dealing with Lasith Malinga.
Malinga then got straight to work with the ball, bowling De Kock and having Jacques Kallis (one) caught behind by Sangakkara as South Africa found themselves on 26 for two.
AB de Villiers came in and put on 75 for the third wicket with Amla before being removed for 29 by Dilshan.
And Duminy and David Miller soon followed suit, the wickets going to Mendis and Dilshan respectively, as South Africa were left on 109 for five. Miller's dismissal came after he and Amla had been dropped, all in the same over.
The tourists were in trouble and things did not let up as Sachithra Senanayake despatched McLaren before Dilshan claimed his third wicket in the shape of Philander, making it 127 for seven.
Steyn helped his team stabilise again, but with the Proteas having got to 180, the inspirational figure of Amla - who had hit 11 fours - then fell victim to Malinga.
And conceding no further runs, Sri Lanka quickly completed the job as Malinga bowled Morkel - to finish with figures of four for 24 - and Steyn (23) was trapped lbw by Mendis.