Vernon Philander claimed 10 wickets in the match to help South Africa completed an innings victory over Sri Lanka inside three days at Centurion.
After establishing a first-innings lead of 231 runs early on day three, South Africa skittled Sri Lanka for just 150 in 39.1 overs second time around to win by an innings and 81 runs.
Seam bowler Philander continued his dream start to international cricket with his fourth five-wicket haul in only his third Test and finished with match figures of 10-102.
After taking 5-53 in the first-innings, Philander was the architect of Sri Lanka's demise in their second knock as he first removed Sri Lanka captain Tillakaratne Dilshan for 11 with a perfectly pitched away-swinger which found the edge through to wicketkeeper Mark Boucher.
Kumar Sangakkara fell in similar circumstances to leave the tourists on 19-3 with Dale Steyn earlier inducing an edge from Tharanga Paranavitana (4) through to Boucher.
Jacques Kallis claimed the final wicket of the morning session as Mahela Jayawardene, one short of 10,000 Test runs, was run out in pursuit of a single as Kallis succeeded with a direct hit.
The wickets continued to tumble after the interval with Angelo Mathews (5) and Thilan Samaraweera (32) edging behind in quick succession to hand Boucher his fifth victim of the innings.
With a heavy defeat inevitable, Thisara Perera (21) and Rangana Herath (23) flung the bat, however Philander returned and swiftly rounded things off with two further scalps.
South Africa's first innings came to a swift end in the morning as the tourists finally broke the last-wicket partnership between Boucher and Imran Tahir.
The home duo had put on 39 runs the previous evening and added another 22 quickly this morning before Boucher was dismissed for 65, caught behind by Kaushal Silva off the bowling of Chanaka Welegedara after recording his 35th Test half-century.
Tahir finished unbeaten on 29 as South Africa claimed a strong first-innings lead, having dismissed the visitors for 180 on day one.