Duanne Olivier led the all-pace attack with 4-48, to go with his 11 wickets in the first Test, as Pakistan was all out for 177, the third time in three innings this series the tourists have failed to reach 200.
Olivier had the support of 3-48 from Dale Steyn, 2-35 from top-ranked Test bowler Kagiso Rabada, and 1-36 from the returning Vernon Philander as South Africa’s decision to pick four quicks and put Pakistan in to bat paid off.
Pakistan was out in 51.1 overs and before tea on the opening day at Newlands.
By stumps, South Africa was 123-2 in its first-innings reply, only 54 runs behind, and eyeing up a sizeable lead thanks largely to 78 from 96 balls by opener Aiden Markram.
Markram was bowled by Shan Masood on what turned out to be the final ball of the day, sending the Pakistan players into the dressing room smiling, celebrating and with something to be positive about.
They had precious little success other than that on the opening day after losing the toss, being put in to bat and failing, mostly in the face of Olivier’s hostile, short-pitched bowling. Olivier backed up his career-best showing in the first Test with another leading display.
South Africa won the first Test by six wickets and is looking for a winning 2-0 lead in the three-match series. Captain Sarfraz Ahmed made a fighting 56 for Pakistan in another struggling batting effort while Mohammad Amir took the only other wicket for the tourists when Dean Elgar was first man out for South Africa, caught behind by Sarfraz for 20.
Hashim Amla was 24 not out at stumps.
The home team was on top as early as the fifth over when Fakhar Zaman was surprised by a bouncer from Steyn and lofted a catch to Temba Bavuma in the slips.
Azhar Ali (2), Babar Azam (2), Sarfraz and Yasir Shah (5) all fell to catches by the wicketkeeper or in the slips as Olivier did most of the damage again. Steyn was close behind with his three wickets and the veteran fast bowler’s figures were his best since he took five against New Zealand in August 2016.
Sarfraz had arrived with Pakistan 54-5 and under grinding pressure before lunch. Pakistan lost those first five wickets inside the first 20 overs.
He hit nine fours to temporarily keep the South African bowlers at bay and his team was 156-7 when he fell flashing at a delivery outside off to edge Olivier through to wicketkeeper Quinton de Kock.
Sarfraz was at the crease for 102 of Pakistan’s runs, sharing partnerships of 60 with Masood (44) and 42 with tailender Mohammad Amir (22 not out).
Only two other partnerships reached double figures for Pakistan.
Pakistan’s quicks, boosted by Mohammad Abbas’ return from a shoulder injury, didn’t have the same success. Markram and Elgar put on 56 for the first wicket and Markam and Amla added 67.
Markram stroked 14 fours and a six, when he sent a lofted straight drive off spinner Yasir Shah sailing into the stands at wide long-on.
He was removed right at the end, though, missing out on what looked likely to be a century when Masood sent one in that kept surprisingly low, deceived the batsman and knocked out the off stump.
South Africa: Dean Elgar, Aiden Markram, Hashim Amla, Theunis de Bruyn, Faf du Plessis (captain), Temba Bavuma, Quinton de Kock, Vernon Philander, Dale Steyn, Kagiso Rabada, Duanne Olivier.
Pakistan: Imamul-Haq, Fakhar Zaman, Shan Masood, Azhar Ali, Asad Shafiq, Babar Azam, Sarfraz Ahmed (captain), Mohammad Amir, Yasir Shah, Shaheen Afridi, Mohammad Abbas.