Sri Lanka collapsed to their lowest one-day score of 43 on Wednesday when they lost by 258 runs to South Africa in the first one-day international at Boland Park.
Their total equalled the fourth previous lowest score ever in 50 overs internationals and the victory margin was the third largest. The Sri Lankans' previous lowest score was 55 against West Indies in Sharjah in 1986.
Pace bowlers Morne Morkel and Lonwabo Tsotsobe claimed seven wickets between them as Sri Lanka, chasing 302 for victory, were shot out in 20.1 overs.
Hashim Amla earlier scored a century at opener before Morkel destroyed the Sri Lankan top-order with pace and bounce to claim four for 10 off six overs. Tsotsobe also created havoc with the new ball, taking three for 19 in six overs with his left-arm seamers.
Kosala Kulasekara was the only Sri Lankan batsman to reach double figures and was the ninth man out for 19.
Amla anchored the South African innings with a determined 112 off 128 balls, stroking eight classy boundaries. It was the ninth century in 53 ODIs for the vice-captain.
The hosts won the toss and AB de Villiers, leading the team for the first time, chose to bat first.
South Africa scored 301 for eight with Jacques Kallis stroking a fluent 72 off 80 balls, adding 144 for the second wicket with Amla.
De Villiers added a quickfire 52 off 40 balls, before fast bowler Lasith Malinga ripped through the lower-order, taking five for 53 as South Africa lost five wickets for 22 runs in 4.4 overs.