Image courtesy of: ESPNcricinfo
South Africa batsmen Dean Elgar and Rassie van der Dussen scored 88 and 68 respectively, but England clawed their way back into contention on the second day in Cape Town.
Starting off the day on 262/9, England only added seven runs to their overnight score before James Anderson was caught by Van der Dussen at first slip off the bowling of Kagiso Rabada for four runs.
Ollie Pope was left stranded on 61, which came off 144 balls and included seven boundaries.
Rabada was the pick of the bowlers with three wickets, while Vernon Philander, Anrich Nortje and Dwaine Pretorius snapped up two wickets apiece. As for Keshav Maharaj, he chipped in with one.
Trailing by 262 runs, South Africa lost debutant Pieter Malan early on as he was caught by England captain Joe Root at first slip off the bowling of Stuart Broad for five runs.
Zubayr Hamza also made five runs before he was brilliantly caught by Ben Stokes at second slip off the bowling of Broad.
Captain Faf du Plessis was on his way back to the pavilion soon after as he was caught by Stokes at second slip off the bowling of Broad for one run.
Elgar and Van der Dussen stabilised the innings with a 117-run partnership, during which both batsmen surpassed their fifties, before Elgar was sent packing by Dominic Bess for 88, which came off 180 balls and included 10 boundaries.
Quinton de Kock mustered 20 runs before he was removed by Sam Curran, who also took out Van der Dussen for 68, which came off 187 deliveries and included seven boundaries.
Anderson then dismissed Dwaine Pretorius and Keshav Maharaj, who fell in the last over of the day.
As soon as Maharaj was out, stumps was called, which left Philander unbeaten on 13.
Anderson was the most successful bowler with three wickets, while Broad and Curran took two wickets apiece. As for Bess, he claimed one.
South Africa ended day two on 215/8, which still leaves them trailing by 54 runs, and will continue batting on Sunday at 10:30 local time or 08:30 GMT.