Stuart Broad led from the front as England reduced South Africa to 137 for four t?o leave the first Test finely poised after two days in Durban.
Broad took 3-16 at Kingsmead, striking twice with the new ball and then returning to oust danger man AB de Villiers on 49.
That left South Africa 166 behind, with Dean Elgar impressing with an unbeaten 67, after England were bowled out for 303 this morning.
England had resumed on 179 for four and looking to prosper under sunny skies a world away from the drizzle and heavy clouds which had curtailed the opening day's play in Durban.
Ben Stokes initially looked in good touch with three thumping boundaries, but the Durham all-rounder attempted one shot too many and miscued a pull off Morne Morkel straight to JP Duminy at square-leg on 21.
Nick Compton, playing in the city where he was born and making his first Test appearance since May 2013, appeared to be progressing towards a comeback century as he and Jonny Bairstow added 51 for the sixth wicket.
Stuart Broad celebrates bowling Stiaan van Zyl for a duck with his England team-mates
The Middlesex batsman abandoned his stoic approach to flay the new ball to the rope several times and looked particularly strong square of the wicket.
But, like Stokes before him, he was undone by Morkel's extra bounce and feathered a bottom edge through to AB de Villiers behind the stumps on 85.
That prompted a clatter of wickets as Morkel removed Moeen Ali and Chris Woakes for ducks - the former caught behind before Woakes was pinned lbw by the next delivery.
Stuart Broad survived the hat-trick ball, but Bairstow edged Kyle Abbott to Elgar at first slip on 41 as England lost four wickets for 20 runs.
Broad and Steven Finn chanced their arm to add a useful 36 and take England past 300, with Morkel and Dale Steyn each taking four wickets, and that looked a decent score when South Africa faltered at the start of their reply.
Stiaan van Zyl left the second ball of the innings from Broad only to see his off stump pegged back, and Hashim Amla was dropped by Bairstow off the unfortunate Chris Woakes before edging Broad behind for seven.
Jonny Bairstow wheels away to congratulate Moeen Ali on bowling Francois du Plessis
From 14 for two Elgar and AB de Villiers led the Proteas recovery, although the latter was fortunate to survive gloving Finn to Stokes at gully.
With the fielder uncertain as to whether he had taken a clean catch, the umpires sent the decision upstairs and replays proved inconclusive, handing de Villiers a reprieve.
However, having struck Moeen for a towering six down the ground, de Villiers fell one short of his half-century when a Broad cutter jagged away to catch his outside edge.
A rush of blood to the head accounted for Francois du Plessis as he was bowled on two attempting to charge Moeen.
However, the hosts avoided any further damage as Elgar survived a big lbw appeal from Stokes on 58.
Alastair Cook declined a review - seemingly in the belief the ball had caught the left-hander's inside edge - but replays show it had struck both pads and would have gone on to hit middle stump.