Johannesburg: Stuart Broad decimated South Africa's top order with a magical spell of fast bowling that yielded five wickets and left England on the brink of victory at tea on day three of the third test on Saturday.
The hosts limped to the interval on 71 for eight after Broad returned figures of five for 14 from 10 overs on a lively wicket to leave the Proteas with a meagre 61-run lead.
Faf du Plessis (12) and Hardus Viljoen (one) will seek to build a ninth-wicket partnership after the interval in an attempt to set a target that gives their bowlers some hope.
Resuming after lunch on 16 without loss having bowled England out for 323 in the morning, South Africa had no answer to the bounce and movement of Broad, who moved ahead of Bob Willis into third on the list of all-time England test wicket-takers with 329.
Dean Elgar (15) edged to wicketkeeper Jonny Bairstow and another torturous innings from Stiaan van Zyl (11) ended when he spliced the ball to Ben Stokes in the gully.
The huge wicket of AB de Villiers (0) followed in Broad's next over as he induced an inside edge to the keeper, before Hashim Amla (5) clipped the ball to short leg where James Taylor took a remarkable low catch.
There were no second-innings heroics from Temba Bavuma (0) as he attempted to leave a rising delivery but only managed to glove the ball on to his stumps.
Broad's spell was reminiscent of his eight for 15 against Australia at Trent Bridge last August.
There was no let-up for the home side when Broad was rested, Steven Finn removing Dane Vilas (8) thanks to another sensational one-handed catch by Taylor diving to his right.
Stokes continued the procession with an excellent in-swinging yorker that clattered into the stumps of Chris Morris (0), before inducing an edge from Kagiso Rabada (16) to Bairstow.
The wicketkeeper had scored a brisk 45 to help England to a 10-run first innings lead as Rabada completed a first test five-wicket haul.
The 20-year-old Rabada finished with figures of 5-78 after dismissing Joe Root (110), Broad (12) and Bairstow.
England lead the series 1-0 after victory in the first test by 241 run. The fourth test starts in Pretoria next week.