Having been dismissed for an under-powered 269 the tourists kept the home side’s scoring on a leash and built pressure at either end of day two, with the Proteas reaching stumps 54 behind on 215 for eight.
James Anderson, right, finished with three for 34 and Broad struck twice in a tone-setting early blast, while Sam Curran and Dom Bess played sound supporting roles, but the tourists might have been even better set.
They did little wrong with Dean Elgar, an accomplished opening batsman who churned out an innings of 88, but they will be frustrated not to have made lighter work of his main foil, Rassie van der Dussen.
The pair put on 117 runs during the middle of the day but Van der Dussen was fortunate to reach 68. He was fully justified in overturning an lbw verdict with just six to his name, a big inside edge having been missed in real time, and lucky on 43 to see the ball squirm free as Ben Stokes dived for a one-handed catch.
But his real reprieve came when he had only 16 and a brilliantly directed Broad delivery, spitting and rearing in from back-of-a-length, brushed his glove on its way through. He began to walk for the pavilion but turned on his heels once replays showed that Broad had no-balled.
Umpire Paul Reiffel will attract criticism for failing to keep a better eye on the crease line – and there were several other no-balls which went unpunished – but for a bowler playing his 136th Test, this was a self-inflicted wound.
Had his boot landed a couple inches further back South Africa would have been 86 for four and the most profitable stand of the match would have been stopped in its tracks. Either side of their partnership South Africa lost their first three wickets for 40 and five for 58 during the evening.
England resumed nine down on 262 and added just seven before Ollie Pope was stranded on 61 – his faith in exposing Anderson to Kagiso Rabada going unrewarded. The total looked light, not least when South Africa ticked off 18 in their first three overs.
But Broad reclaimed the initiative swiftly and got just rewards for a polished six-over spell that proved too good for debutant Pieter Malan and Zubayr Hamza, who both fell for five fiddling outside off stump.
Stokes took a fine low catch to account for Hamza and a simpler second when home captain Faf du Plessis nicked Anderson. One more wicket would have made it a superb session for the English attack and Van der Dussen seemed a ripe candidate, spraying Anderson wide of gully then requiring DRS to reverse the errant lbw.
At the other end the solid Elgar had only one moment of concern, chipping close to Ollie Pope as he misread Dom Bess’s gentle loosener, as South Africa added 81 without loss. The timid run-rate owed much to Bess’s control, which allowed him to hold his end soundly for 27 overs on his recall, but Broad’s wandering feet stifled self-belief for a while.
The all but unplayable delivery deserved so much more. Van der Dussen would also not have reached tea had Stokes held Anderson’s next chance, but the ball jerked free of his outstretched hand as he hit the turf.
England did not allow their hard-won pressure to dissipate after tea, as Broad and Bess stitched together six spartan overs. It was Elgar whose patience ran dry in sight of a century, drawn in by a fuller offering from Bess and swinging hard down towards long-off. Root initially seemed unsteady under a swirling catch but held on cleanly and proceeded to beat his chest and yell out in celebration and relief.
Sam Curran seized the opening, drawing a loose shot from Quinton de Kock and finally ending Van der Dussen’s stay via another Stokes take at slip. Anderson followed suit as he wrapped up the day in style, cashing in on the second new ball as Dwaine Pretorius and Keshav Maharaj both failed to see it through to stumps.