Kyle Abbott took seven for 29 on his Test debut to send Pakistan crashing to 156 all out on the second day of the third and final Test against South Africa at SuperSport Park on Saturday.
Pakistan, forced to follow on 253 runs behind, were 14 for one at the close, with Mohammad Hafeez bowled by Dale Steyn with the first ball of the second innings.
It left Pakistan facing an almost hopeless task as they tried to avoid a series whitewash although Hafeez vowed: "We will be trying to fight it out."
Abbott, 25, was called into the South African squad as cover for the fast bowlers when regular reserve Rory Kleinveldt was named to replace the injured Morne Morkel.
The Dolphins fast bowler, the leading wicket-taker in domestic first-class cricket, found himself in the team when all-rounder Jacques Kallis suffered a calf injury the day before the match.
Abbott's figures were second best on debut for South Africa only to Lance Klusener, his Dolphins franchise coach, who took eight for 64 against India in Calcutta in 1996/97.
"Lance has really helped me on the mental side of the game," said Abbott. "He hasn't tried to change my technique. We have worked on a slightly different mental approach to bowling, being more aggressive and hitting the deck harder."
He bowled a tight line at a lively pace to take two wickets in an initial Pakistan collapse, which saw them slip from 46 for no wicket to 75 for four, then had a spell of five for five as the lower order and tail crumbled.
Abbott said the pressure built by Dale Steyn and Vernon Philander, the two top ranked bowlers in Test cricket, had played a big part in his success.
"It's been a case of building pressure all day. The other seamers bowled just as well, maybe better than I did. It could have been anyone's day out there," he said.
Six of his wickets were to catches in the slip cordon before he finished off the innings by trapping Younis Khan leg before wicket after the Pakistan veteran had battled for two-and-a-half hours and 86 balls to make 33.
Younis barely had time to take his pads off before he had to face the second ball of the follow-on innings.
Imran Farhat, who made the top score of 30 in the first innings, did not open the batting in the second innings after being struck on the hand in the first innings.
X-rays showed no damage and he is expected to bat on Sunday.
Azhar Ali opened with Hafeez, with Younis moving up to number three.
AB de Villiers earlier reached his 16th Test century and his third against Pakistan.
He went on to make 121 before being caught in the deep off left-arm opening bowler Rahat Ali, who finished with six for 127 on his Test debut as South Africa were all out for 409.
Vernon Philander made a Test best score of 74 in helping De Villiers stretch their overnight partnership of 86 to 129 -- a record seventh wicket stand for South Africa against Pakistan -- before he was caught low down at first slip by Mohammad Hafeez off part-time bowler Younis Khan.
Pakistan were without fast bowler Ehsan Adil, who suffered a calf injury on Friday.
De Villiers made his runs off 215 balls with 15 fours, while Philander faced 113 balls and hit nine boundaries.
Rahat bowled a mixture of wicket-taking deliveries with some poorly directed balls, conceding close to five runs an over. His analysis included six no-balls and six wides.
Pakistan made easily their best start of the series as Farhat and Hafeez put on 46 for the first wicket.
But Pakistan were quickly back in perilous territory when Philander returned for his second spell as he and Abbott took three wickets in successive overs.
Abbott followed up with a second wicket when he dismissed Pakistan captain Misbah-ul-Haq shortly before tea.
Philander trapped Farhat leg before for 30 before Abbott, with his sixth ball in Test cricket, had Hafeez caught low down at gully for 18.
Philander then bowled Azhar Ali for six, with the batsman edging a ball which kept low into his stumps.
Misbah fell to a superb diving catch by Alviro Petersen at second slip off the tall, strongly-built Abbott.