Dale Steyn struck with the second new ball to secure a 211-run win for South Africa before lunch on the fourth day of the first Test against Pakistan at the Wanderers Stadium on Monday.
Steyn dismissed overnight batsmen Asad Shafiq and Misbah-ul-Haq inside his first three overs with the new ball to sweep away the last serious resistance by the tourists.
He also took the last two wickets to finish with five for 52 and match figures of 11 for 60.
South Africa first innings: 253
Pakistan first innings: 49
South Africa second innings 275-3 dec
Pakistan second innings
M Hafeez c de Villiers b Philander 2
N Jamshed c Peterson b Steyn 46
A Ali lbw Kallis 18
Y Khan c de Villiers b Morkel 15
M-ul-Haq c de Villiers b Steyn 64
A Shafiq c Kallis b Steyn 56
S Ahmed b Philander 6
U Gul c De Villiers b Steyn 23
S Ajmal c De Villiers b Morkel 11
J Khan lbw Steyn 9
R Ali not out 3
Total (all out in 100.4 overs) 268
Fall of wickets: 1-7, 2-64, 3-70, 4-82, 5-209, 6-210, 7-218, 8-240, 9-261.
Bowling: Steyn 28.4-10-52-5, Philander 22-3-60-2 (nb-1), Morkel 25-7-89-2 (nb-3), Kallis 15-5-35-1 (w-1), Peterson
Wicketkeeper AB de Villiers held five catches to add to the six he took in the first innings.
He equalled the world record set by Jack Russell for England against South Africa on the same ground in 1995/96.
He also became the first player in Test history to make a century and claim ten or more dismissals in a match after hitting an unbeaten 103 in the second innings.
Shafiq's dismissal ended a stubborn fifth wicket stand of 127 with Misbah. The pair added 20 runs to the overnight total of 183 for four in the five overs that had to be bowled before the new ball could be taken.
Only another four runs were added before Steyn had Shafiq caught at second slip by Jacques Kallis for 56 in the third over with the new ball. Shafiq had faced 168 balls and hit nine fours.
In his next over Steyn had Pakistan captain Misbah caught behind for 64, made off 167 balls with 11 boundaries.
Sarfraz Ahmed chopped a ball from Vernon Philander on to his stumps and Saeed Ajmal provided De Villiers with his tenth catch of the match when he gloved a lifting ball from Morne Morkel to the wicketkeeper.
There was some frustration for the bowlers as Umar Gul slogged his way to 23 and Morkel was denied a wicket after bowling Junaid Khan when a replay showed he had sent down a no-ball.
But Steyn had Gul caught behind and then trapped Junaid leg before wicket with the fourth ball of the last over before lunch.
The teams meet in the second game of a three-match series in Cape Town from February 14 to 18.