Keshav Maharaj and Chris Morris shared six wickets as South Africa made light of Kagiso Rabada's absence to establish a commanding position against England in the second Test at Trent Bridge on Saturday.
The Proteas were 1-75 in their second innings at stumps on the second day – already an overall lead of 205 runs.
Dean Elgar was 38 not out and Hashim Amla 23 not out.
South Africa saw James Anderson, England's all-time leading Test wicket-taker, capture their last four first-innings wickets for four runs in 16 balls as they slumped from an overnight 6-309 to 335 all out.
But they in turn skittled out England for 205, with left-arm spinner Maharaj taking 3-21 in 10 overs and recalled all-rounder Morris 3-38 in 8.5 overs.
South Africa's performance was all the more impressive as fast bowler Rabada had been banned from this match as a result of swearing at England all-rounder Ben Stokes during the hosts' 211-run win at Lord's last week that put them 1-0 up in this four-match series.
England captain Joe Root top-scored with 78, having made 190 in his first innings as skipper at Lord's.
His Yorkshire team-mates Jonny Bairstow (45) and Gary Ballance (27) were the only other England batsmen to pass 18 on Saturday.
England's lack of top-order Test runs has long been a problem and number four Root came in facing an all-too familiar repair job at 2-3.
Alastair Cook (three) was caught behind when he got an inside edge to Vernon Philander's inswinger, the former captain out on review.
Next ball, Cook's fellow left-handed opener Keaton Jennings fell for a duck.
The South Africa-born batsman was undone by a brilliant Morne Morkel delivery from around the wicket that cut away off the pitch and took an edge safely held by wicket-keeper Quinton de Kock – who played in the same Johannesburg school side as Jennings.
Root counter-attacked by hitting Philander for three fours in an over.
At lunch, Root and Ballance, desperate to nail down his Test place after being recalled at Lord's, had taken England to 2-85.
Ballance, however, had added just one to his interval score of 26 when the left-hander played on to Philander.
The towering Morkel then had Root edging a drive and de Kock, diving in front of first slip, held an excellent catch.
It was the end of Root's impressive 76-ball innings, featuring 12 fours, with England now 4-143.
Maharaj had Stokes caught behind for a duck before bowling Bairstow with a classic left-arm spinner's delivery that drifted in and then turned to hit off stump.
England lost three wickets on 199, with paceman Morris taking two in two balls.
In what appeared to be a pre-planned move, he bowled a slower ball outside off stump to Moeen Ali, who duly lofted a drive to point where South Africa captain Faf du Plessis, back leading the side after missing the first Test following the birth of his child, gleefully held the catch.
Stuart Broad was then lbw for a golden duck on his Nottinghamshire home ground, although it needed a review to confirm his dismissal.
Wood survived the hat-trick ball but Morris dismissed him shortly afterwards to wrap up the innings.
Anderson had struggling opener Heino Kuhn caught in the slips by Root before Elgar and Amla, who made 78 on Friday, pressed home the Proteas' advantage with an unbroken stand of 57.
This match has so far been a vindication of du Plessis's bold decision to bat first on winning the toss, with de Kock (68) and Philander, out to Anderson's fifth ball Saturday, also making valuable fifties.
Trent Bridge is renowned for aiding swing bowlers such as Anderson, whose first-innings haul of five for 72 meant that seven of his 22 Test 'five-fors' had come on the Nottingham ground.
England: Alastair Cook, Keaton Jennings, Gary Ballance, Joe Root (c), Jonny Bairstow (wk), Ben Stokes, Moeen Ali, Liam Dawson, Stuart Broad, James Anderson, Mark Wood
South Africa: Heino Kuhn, Dean Elgar, Hashim Amla, Quinton de Kock (wk), Faf du Plessis (c), Temba Bavuma, Vernon Philander, Chris Morris, Keshav Maharaj, Morne Morkel, Duanne Olivier