South Africa 286 (Duminy 63, Elgar 59, Lakmal 5-63) and 406 for 6 dec (Cook 117, de Kock 69, du Plessis 67*, Elgar 52) beat Sri Lanka 205 (Philander 5-45) and 281 (Mathews 59, Mendis 58, Rabada 3-77, Maharaj 3-86) by 206 runs
Scorecard and ball-by-ball details

South Africa made full use of the second new ball to rip through Sri Lanka's last five wickets and complete a 206-run win in Port Elizabeth, an hour and 10 minutes into day five. Once Kyle Abbott broke through early to dismiss Angelo Mathews and Dhananjaya de Silva, there was little Sri Lanka's lower order could do. The margin of Sri Lanka's defeat belied how comfortable their top-order batsmen had looked on day four, and reflected how so many of them had thrown their wickets away.

Chasing 488, Sri Lanka started the final day 248 adrift with five wickets in hand and their last two recognised batsmen at the crease, one of them batting on 58. That man, Mathews, had added only one run to his score when Abbott nipped one in sharply and had a loud lbw shout upheld. Mathews had taken guard on off stump right through the Test match, and this probably played a major role in his dismissal. Jumping back and across, Mathews had to open up to access the ball that was jagging back into the stumps, and before his bat could come across to meet it, the ball had struck his retreating front pad, right in front. He reviewed more in desperation than hope.

A near-replay, down to the failed review, sent de Silva on his way 3.5 overs later. Again the batsman was standing on off stump, and again was forced to play across the line. Again the review returned an umpire's call verdict on height.

In between, Abbott had also dealt Rangana Herath a blow with a sharp lifter that struck him on the bottom hand. Having strapped up his fingers, Herath lasted a further nine balls before Vernon Philander had him caught and bowled, diving across the pitch to catch it low to his left, landing painfully on his arm, after getting the ball to stop on the batsman.

Kagiso Rabada got into the act next, finding away seam movement and extra bounce in the corridor to catch the shoulder of Dushmantha Chameera's bat. The last wicket went to Keshav Maharaj, who finished with a three-wicket haul that was reward for some skillful, tight bowling while getting through 29 overs on day four. He only needed to bowl nine balls on day five, the ninth an absolute ripper, turning past the outside edge of Nuwan Pradeep's defensive bat to knock back off stump.