Vernon Philander's unbeaten half-century revived South Africa after Stuart Broad sparked a collapse that resulted in the Proteas losing four wickets in the last session of a see-sawing first day of the second Test at Trent Bridge.
South Africa were 6/309 at stumps after returning captain Faf du Plessis won the toss.
Philander was 54 not out and recalled all-rounder Chris Morris, one of three changes to the side that lost the first of a four-Test campaign by 211 runs at Lord's last week, 23 not out.
Their unbroken seventh-wicket partnership was worth 74 runs with Philander, primarily a pace bowler, making his second fifty of the series.
South Africa had been 2/179 at tea, but they soon slumped to 6/235.
The previously well set Quinton de Kock (68) and Hashim Amla (78) both fell to Broad as the fast bowler, who led England's attack with 3/47 from 19 overs, struck on his Nottinghamshire home ground.
But conditions for batting improved as the day wore on, with grey clouds replaced by sunny blue skies at stumps.
"The sun came out at the wrong time," Broad told Sky Sports.
"It's a pretty good pitch to bat on, but when there's cloud you feel in the game a little bit."
To the very first ball after tea, left-hander de Kock -- whose tally of 11 Test fifties but just three hundreds is an indication of a sometimes frustrating talent -- chased a wide Broad delivery and edged to former England captain Alastair Cook at first slip.
Amla eventually paid the price for repeatedly mishooking when such a shot off Broad found Mark Wood at long leg.
It was a careless way for an experienced batsman -- this innings saw Amla become just the fourth South African to score 8,000 Test runs -- to get out.
Broad had taken two wickets for three runs in 22 balls -- some way short of his stunning 8/15 in Australia's 60 all out when England clinched the Ashes in their last Test at Trent Bridge two years ago, but important all the same.
All-rounder Ben Stokes then took 2/4 in 11 balls.
Du Plessis (19) was well-caught left-handed down the legside by diving wicket-keeper Jonny Bairstow off a thin glove.
The skipper reviewed but replays upheld the fine decision of on-field umpire Paul Reiffel.
But there was no doubt when Temba Bavuma (20) was caught behind off Stokes trying to leave the ball.
De Kock had at least justified his promotion to number four in place of the dropped JP Duminy.
"Faf asked where I would like to bat and I said that I would like to bat at four," wicket-keeper de Kock told reporters after what he said was an "up and down day".
"I've always liked to bat high up but the team make-up has never allowed me to.
"With this Test there were a few selection things that came up so I thought there was a gap there they might need me for."
Du Plessis, by his own admission, faced a "tricky decision" after winning the toss after not playing at Lord's following the birth of his first child.
Yet despite grey skies overhead and Trent Bridge's reputation for aiding swing bowling, he opted to bat first in the hope his top order could overcome a difficult first hour.
It looked a sound plan as South Africa lost just Dean Elgar, the stand-in skipper at Lord's, before lunch.
Amla went to a 93-ball fifty by driving left-arm spinner Liam Dawson for six.
Philander, again demonstrating his batting ability, pulled Broad for a resounding four that raised a fifty stand with Morris.
England were unchanged from the XI that marked Joe Root's first match as captain with a thumping win where the new skipper made 190 in the first innings.
All South Africa's batsmen wore black armbands in memory of the late mother of Proteas coach Russell Domingo, after she died recently following injuries sustained in a car crash.
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