Some disciplined bowling by the England bowlers saw South Africa being reduced to 215/8 when Day 2 of the ongoing second Test ended here on Saturday even as opener Dean Elgar and Rassie van der Dussen showed some fightback with their 88 and 68-run contribution respectively.
The hosts were reeling at 40/3 at one stage however, it was Elgar and der Dussen who played some sensible cricket in the middle and forged a 117-run partnership for the fifth wicket to repair the damage.
However, just when the South Africa opener was inching towards his century, off-spinner Dominic Bess came up with a much needed breakthrough as he sent a well settled Elgar back in the hut.
After Elgar's departure, der Dussen tried his best to hold the fort for South Africa but lacked support from the other end as the other batsmen looked helpless against the England pace attack.
Vernon Philander was batting on 13 runs when stumps were drawn for the day. For England, James Anderson picked up three wickets for 34 runs while Stuart Broad and Sam Curran bagged a couple of wickets each.
The hosts still trail by 54 runs.
Earlier in the day, England resumed from 262/9 but could only manage to add another seven runs to their scorecard as Kasigo Rabada packed back overnight batsman Anderson (4) to wrap up the visitors for 269 runs.
South Africa currently lead the four-match series 1-0 after winning the first Test in Centurion by 107 runs.
Brief scores: South Africa 215/8 (Dean Elgar 88, Rassie van der Dussen 68; James Anderson 3/34) trail by 54 runs against England 269 all out (Ollie Pope 61, Ben Stokes 47; Kagiso Rabada 3/68)