South Africa beat Sri Lanka by innings and 45 runs
Kusal Perera hit 64 and Wanindu Hasaranga made 59 before Sri Lanka were bowled out for 180 shortly after lunch. They had resumed at 65 for two but never recovered after all-rounder Wiaan Mulder dismissed overnight batsman Dinesh Chandimal and Niroshan Dickwella in quick succession.
Batsman Dhananjaya de Silva did not bat for Sri Lanka, who suffered a spate of injuries during the match.
It was South Africa’s second win in eight matches in the world Test championship. They have suffered six defeats. Sri Lanka have won, lost three and drawn one of their five matches.
Sri Lanka 396 (D. Chandimal 85, D. de Silva 79 retired hurt; L. Sipamla 4-76) and 180 (K. Perera 64, W. Hasaranga 59; L. Ngidi 2-38, A. Nortje 2-47, W. Mulder 2-39)
South Africa 621 (F. du Plessis 199, D. Elgar 95, T. Bavuma 71, K. Maharaj 73; W. Hasaranga 4-171)
Series: South Africa lead the two-match series 1-0
Toss: Sri Lanka
Remaining match: January 3-7, Johannesburg