All-rounder Thisara Perera sparked a turnaround for Sri Lanka in the second one-day international against South Africa at SuperSport Park on Wednesday.
Perera took three for 26 as South Africa were bowled out for 251 after being sent in.
South Africa seemed set for a huge total when Quinton de Kock gave them a blazing start, hitting 94 off 70 balls.
But the innings changed dramatically when Perera, playing in his 150th one-day international, had De Kock caught behind when the batsman tried to flick a ball outside his leg stump and the ball looped off a leading edge to wicketkeeper Niroshan Dickwella.
De Kock, who made 83 and 81 in his previous two one-day internationals, and had innings of 86 and 80 in two Tests against Sri Lanka, hung his head in disappointment after missing another chance of making a century.
At that stage South Africa were 131 for two in the 21st over, scoring at better than six runs an over.
More From This Section
De Kock was in sublime form, striking 17 fours and a six.
As Perera said in a pitchside interview at the end of the innings, South Africa were on target for a total of over 300. "We came back very strongly," he said.
Perera followed up by having Rassie van der Dussen caught at deep midwicket for two before bowling South African captain Faf du Plessis with a ball which kept low.
Despite Du Plessis making 57 off 66 balls, the innings never regained its early momentum. South Africa, having picked only five specialist batsmen, lost their last six wickets for 31 runs.
South Africa lead the five-match series 1-0 after an eight-wicket win in the first game in Johannesburg.
Disclaimer: No Business Standard Journalist was involved in creation of this content