England need eight wickets for victory on the final day of the second Test in Cape Town after being frustrated by South Africa’s top order.
Dom Sibley made 133 not out – his maiden Test ton – and Ben Stokes hit 72 as England declared on 391-8 to set the Proteas a Test record 438 to win.
Joe Denly removed opener Dean Elgar for 34 and Zubayr Hamza fell for 18 to James Anderson in the penultimate over.
But Pieter Malan remained unbeaten on 63 as South Africa closed on 126-2.
Anderson’s late strike provided England a welcome boost on a Newlands pitch not offering as much variable bounce as England would have hoped for by now.
They will still have to work hard and stay patient to secure victory, but have time and runs to play with, given the hosts require a further 312 to win.