Stuart Broad shone with bat and ball to give England the advantage on an enthralling second day of the first cricket Test against South Africa in Durban.
Opener Dean Elgar provided stubborn resistance after Broad claimed three wickets as the hosts finished on 137 for four in reply to England's 303.
Elgar was unbeaten on 67 at the close after Broad removed three of his Proteas partners, including a superb delivery to dismiss the dangerous AB de Villiers caught behind.
Temba Bavuma was 10 not out with South Africa 166 runs adrift going into the third day.
Broad also snagged the wicket of Stiaan van Zyl with the second ball of the innings and had out-of-form South Africa captain Hashim Amla caught behind for seven.
Spinner Moeen Ali bowled Faf du Plessis for two, the batsman dancing down the track but missing the ball which clipped the top of the bails.
The second day in Durban tests are traditionally the preserve of the batsmen but 10 wickets fell on a sunny and breezy day after yesterday's play was dogged by rain delays.
England could not have asked for a better start when Van Zyl, back in the side, shouldered arms to a straight ball from Broad and was bowled while Amla was squared up by Broad and caught behind by wicketkeeper Jonny Bairstow.
De Villiers survived a controversial call for a gully catch, that was eventually ruled to have fallen short when he was on 11 but was cleverly set up by Broad who tempted him into a faint touch to a wider ball when he was on 49.
"AB was taking the game away from us slightly so we tried to put pressure on him to make score shots and the ball swung late and got more grip than I thought it would," Broad told reporters.
Morne Morkel took four wickets before lunch as England added 124 runs to their overnight tally for the loss of six wickets.
Nick Compton, 63 overnight, was one of Morkel's victims as he went out for 85, the top score of the innings.
Morkel also dismissed Stokes, Moeen and Chris Woakes, out first ball, in a hostile spell that brought him figures of four for 76.
"The first hour tomorrow will be crucial," Morkel said. "It's tough to score with the wicket and outfield both being slow."