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 75 for one 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.
"It has been an excellent day of cricket for us," Morris told Sky Sports.
"The guys showed guts and fought hard at the end to get to the close. We are pretty chuffed."
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 309 for six to 335 all out.
But they in turn skittled out England for 205, with left-arm spinner Maharaj taking three for 21 in 10 overs and recalled all-rounder Morris three for 38 in 8.5 overs.
It was yet another example of the resilience of a South Africa side who have lost just one of their last 19 away Test series.
No team have made more in the fourth innings to win a Test at Trent Bridge than England's 284 for six against New Zealand in 2004 and Anderson told BBC Radio's Test Match Special: "We are in a tricky position. It was not a great day for us.
"We did well to bowl them out for 350 but didn't get it right with the bat."
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.
- 'Fantastic' Root -
England captain Joe Root top-scored with 78, having made 190 in his first innings as skipper at Lord's.
"Joe Root was fantastic and played a great counter-attacking knock when we were struggling," said Anderson.
"The first Test was plain sailing for him as captain but it's a real test here."
Root's 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 three for two.
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 85 for two.
Ballance, however, had added just one to his interval score of 26 not out 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 143 for four.
From then on the innings fell away rapidly, with England losing three wickets on 199 as paceman Morris took two in two balls.
Elgar and Amla, who made 78 on Friday, pressed home the advantage with an unbroken stand of 57 after Heino Kuhn fell cheaply.
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 (54), 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 five for 72 meant that seven of his 22 Test 'five-fors' had come on the Nottingham ground.