South Africa 426 (Duminy 155, Amla 134, Pradeep 4-78, Kumara 4-107) beat Sri Lanka 131 (Philander 3-28, Rabada 3-44) and 177 (Karunaratne 50, Parnell 4-51, Olivier 3-38) by an innings and 118 runs
Scorecard and ball-by-ball details

Sixteen wickets, 228 runs, 59.3 overs. South Africa's pace attack delivered a swift and brutal dismemberment to seal victory at the Wanderers inside three days and confirm a 3-0 sweep in the series. Sri Lanka only managed one half-century in the match - although that was an improvement on the second Test - and could not even last long enough for the possibility of a Johannesburg thunderstorm to provide a stay of execution.

Faf du Plessis had hesitated to enforce the follow-on in Cape Town but showed no search mercy as the Bullring bayed for blood. Kagiso Rabada and Vernon Philander started the job, Wayne Parnell and the debutant Duanne Olivier took sadistic pleasure in twisting the knife. Parnell finished with six wickets in the match and Olivier five, heartening performances for South African cricket after a week spent in the shadow of Kolpak.

Having capitulated in the morning session to concede a 295-run deficit, Sri Lanka lost a wicket in the second over of their second attempt and needed Dimuth Karunaratne's 50, as well as some lost-cause humpty for the eighth wicket, to prevent total humiliation. Karunaratne, having avoided a pair, survived being dropped on 16 to record his highest score of the series but there was little resistance forthcoming from elsewhere.

South Africa's bowlers gave an exhibition in how to hunt tentative prey on a fast pitch but some of the catching was just as spectacular. They saved their best efforts in the field for Sri Lanka's captain, Angelo Mathews, who was dismissed twice in the day. Quinton de Kock had produced a pearler in the first innings but du Plessis surpassed him with another one-handed effort (without the aid of gloves) at second slip, from a fierce, top-edged hack by Mathews, leaping to take the ball high above his head before landing on his knees and roaring like a gladiator over a vanquished opponent.

When Rabada burst through to rattle Karunaratne's stumps shortly before tea - which was put back to make up for time lost on day two - the end was in sight. Suranga Lakmal proceeded to thrash 31 off 26 during a 43-run frolic with Upul Tharanga to take Sri Lanka past their first-innings 131 but another brilliant running catch from JP Duminy ended the fun as Parnell and Olivier shared the last three wickets without conceding a run to seal a hefty innings win.

Rabada had been held back until second change in the first innings but this time du Plessis gave the crowd what they wanted. His opening salvo was a beast of a delivery: Kaushal Silva reacted as if bitten by a cobra but could not remove his glove in time as the ball reared at him from a length.

Kusal Mendis almost suffered the same fate to his first ball and also edged short of first slip but Sri Lanka made it to lunch one down. Rabada beat Mendis with the regularity of a sheet-metal worker as the close catchers prowled and supporters on the grass banks hooted encouragement; Mendis responded by shifting his stance on to leg stump and trying to come down the pitch to Philander. It was a high-wire act and, after striking five boundaries, Mendis chopped an inswinging delivery from Parnell into the top of off stump.

Parnell ought to have had the wicket of Karunaratne earlier in the over but Dean Elgar could not hold a low edge going two-handed to his right from third slip. The second-wicket stand did yield 37 runs but Sri Lanka were trying to construct a cardboard fort in a howling Highveld gale, as Dhananjaya de Silva and Dinesh Chandimal both fell providing catching practice to the slips.

During the morning session, South Africa claimed the six wickets they required to make Sri Lanka bat again in just 17 overs. With a lively Wanderers surface at their disposal, Du Plessis judged correctly that his attack had enough left in the tank, having lost some 25 overs on the second evening and with the possibility of rain returning at some point.

It had threatened to be a carve up from the moment South Africa had the ball in hand and, without the bad weather to delay them, the bowlers were quickly back into their work. In his second over of the morning, Philander moved the ball seductively away from Chandimal to graze the outside edge and provide a catch for de Kock.

Mathews fell to the same manner of dismissal - at least as far as the scorecard was concerned. He had already successfully reviewed Bruce Oxenford's lbw decision off Philander, saved by a thin inside edge with height also in question, when he fended at a rapid delivery from Rabada that held its line outside off. The edge may have been travelling straight to Hashim Amla at first slip but de Kock got there first, intercepting one-handed at full stretch, a magnificent catch even if it didn't quite stick cleanly in the glove at the first attempt.

Sri Lanka had raised three figures by that point but would not get much further. Olivier claimed his first Test wicket with a venomous bouncer that Rangana Herath could only dolly to square leg via an awkward contortion and a brief flurry of blows from Tharanga could not delay the inevitable.

Lakmal chipped Parnell lackadaisically to extra cover and Olivier then achieved some extra bounce from a length to take the shoulder of the bat and extract Tharanga. Nuwan Pradeep was the last to fall, popping a catch back to the bowler; Parnell adjudged to have taken the ball just above the turf after several replays for the third umpire. A few hours later he was celebrating finishing off the Sri Lanka innings for a second time.

Alan Gardner is an assistant editor at ESPNcricinfo. @alanroderick