England ended day three of the first Test in Durban with a lead of 261 runs over South Africa.
Joe Root (60 not out) reached a 17th Test fifty to help the tourists pile on second-innings runs in the evening session as England closed on 172-3, having earlier bowled South Africa out for 214.
The Proteas resumed on their overnight score of 137-4, but lost Temba Bavuma (10) to Stuart Broad with the second ball of the morning, and Moeen Ali soon got rid of JP Duminy and Kyle Abbott cheaply.
Dean Elgar was digging in at the other end and went through to a well-deserved fourth Test century, and briefly had some support from Dale Steyn (17) before the fast bowler holed out off Moeen.
Steven Finn took the final two wickets – Moeen and Broad shared the other eight – with the second new ball to wrap up the innings. Elgar, just the sixth South African to carry his bat, finished on 118.
England started their second innings after lunch and were reduced to 48-2. Off-spinner Dane Piedt trapped Alastair Cook lbw for seven and then had Alex Hales caught in the deep after an unwise slog.
Nick Compton and Root added 71 for the third wicket only for the former to fall one short of a second half-century of the match when he edged Morne Morkel through to AB de Villiers for 49.
James Taylor (24*) came together with Root to build on England’s advantage, which was looking sizeable by the time that the players left the field – South Africa weary and without the injured Steyn.
The world’s number one ranked pace bowler only managed 3.5 second-innings overs because of what appeared to be a shoulder problem, giving the hosts even more of a mountain to climb tomorrow.