Pace sensation Kasigo Rabada claimed 10 wickets in a match for the second time in his fledgling Test career as South Africa sealed a crushing 282-run victory over Sri Lanka to wrap up the series at Newlands on day four.
Rabada took 4-37 in the first innings in Cape Town and produced a devastating spell on Thursday, ripping through the tourists to record figures of 6-55 and a fifth five-wicket haul in the longest format.
The 21-year-old quick had insisted he was not in need of a rest after failing to fire on all cylinders in the first Test.
And Sri Lanka must have been wishing he had been allowed to put his feet up after he did the damage as the Proteas sealed a third consecutive Test series triumph.
Rabada took the first four wickets of the day in the morning session, including touring captain Angelo Mathews for 49, as Sri Lanka folded to 224 all out before lunch and fell 2-0 down with one match to come in Johannesburg next week.
Realistically it was only a matter of time before Sri Lanka were put out of their misery when they resumed on 130-4 - needing to see out six sessions for a draw or score a highly unlikely 377 runs to square the series.
Mathews scored a streaky boundary between gully and the slips in the first over from Kyle Abbott, playing what is expected to be his final Test before heading to England's County Championship, but there was nothing fortuitous about the skipper's classy off drive against the same bowler as thick clouds hovered over Table Mountain.
The Proteas were five wickets from victory from the first ball of the next over, though, when Dinesh Chandimal (30) gave it away by guiding a stray Rabada delivery straight to Stephen Cook at square leg.
Upul Tharanga (12) dispatched Rabada for back-to-back boundaries before edging him through to wicketkeeper Quinton de Kock and the end was nigh when the fired-up paceman removed Mathews in the same fashion to seal a five-wicket haul.
De Kock hung on again after Suranga Lakmal gloved a well-directed short ball from Rabada, leaving Keshav Maharaj (1-64) and Vernon Philander (1-64) to take a wicket apiece as Rangana Herath was stranded on 35 not out.