Rain early in South Africa's second innings threatened to thwart England's push for victory but fast bowler Mark Wood struck twice when play resumed more than three hours later.
Wood used his extreme pace to send Dean Elgar's off stump flying out of the ground before he had Zubayr Hamza feeling for a ball outside his leg stump to present a catch to wicketkeeper Jos Buttler.
Then it was over to Root, who in 90 previous Tests had never taken more than two wickets in an innings. Bowling from the end where fellow off-spinner Dom Bess took five wickets in the first innings, he trapped Pieter Malan leg before wicket in the last over before tea.
Root took three more wickets after the interval. Rassie van der Dussen was superbly caught at short leg by Ollie Pope and first innings top-scorer Quinton de Kock fell to a leaping catch at backward point by a leaping Wood.
South Africa captain Faf du Plessis was sixth out after making 36, his highest score of what has been a poor series for him. He was another bat-pad victim, giving Pope his fifth catch of the match.
In overcast conditions at the start of play, Broad and Sam Curran achieved some swing with a ball which was almost new, but they were aided by some poor shots by the South African batsmen.
Broad struck with the fourth delivery of the morning when Vernon Philander missed a drive against a full delivery which swung in between bat and pad. He was out for 27.
Curran uprooted De Kock's middle stump with the fifth ball of the next over with the left-hander missing an extravagant drive against a ball angled in from the left-armed bowler. De Kock had not added to his overnight score of 63.
Keshav Maharaj was bowled off a bottom edge when he tried to pull a ball from Broad before Kagiso Rabada, who scored the only run in the collapse, hit a simple catch to mid-off to give Broad his third wicket. Broad finished with three for 30.
=========================================== SCOREBOARD =========================================== England, first innings, 499-9 declared South Africa first innings overnight 208-6) D. Elgar c Pope b Bess 35 P. Malan c and b Bess 18 Z. Hamza c Pope b Bess 10 A. Nortje c Root b Stokes 18 F. du Plessis c Pope b Bess 8 H. van der Dussen b Bess 24 Q. de Kock b Curran 63 V. Philander b Broad 27 K. Maharaj b Broad 0 K. Rabada c Wood b Broad 1 D. Paterson not out 0 =========================================== Extras: (b4, w1) 5 =========================================== Total: (86.4 overs) 209 ===========================================
Fall of wickets: 1-50 (Malan), 2-60 (Hamza), 3-63 (Elgar), 4-71 (Du Plessis), 5-109 (Van der Dussen), 6-154 (Nortje), 7-208 (Philander), 8-208 (De Kock), 9-208 (Maharaj)
Bowling: Broad 13.4-6-30-3, Curran 11-2-32-1, Bess 31-12-51-5, Wood 11-4-31-0 (1w), Denly 4-1-10-0, Root 11-4-25-0, Stokes 5-1-26-1.
=========================================== South Africa, second innings (following on) =========================================== P. Malan lbw b Root 12 D. Elgar b Wood 15 Z. Hamza c Buttler b Wood 2 F. du Plessis c Pope b Root 36 H. van der Dussen c Pope b Root 10 Q. de Kock c Wood b Root 3 V. Philander not out 13 K. Maharaj not out 5 =========================================== Extras: (b3, lb1, nb1, w1) 6 =========================================== Total: (6 wkts, 62 overs) 102 ===========================================
Fall of wickets: 1-18 (Elgar), 2-22 (Hamza), 3-44 (Malan), 4-66 (Van der Dussen), 5-74 (De Kock), 6-83 (Du Plessis)
Bowling: Broad 6-3-5-0 (1nb), Curran 3-0-13-0, Wood 11-3-23-2 (1w), Bess 18-10-17-0, Stokes 5-2-9-0, Root 19-11-31-4
Match situation: South Africa trail by 188 runs with four wickets remaining
Toss: England
Umpires: Bruce Oxenford, Rod Tucker (both AUS)
TV umpire: Joel Wilson (WIS)
Match referee: Andy Pycroft (ZIM).