Centurion: Rory Burns' unbeaten 77 gave England hope of chasing an unlikely 376 to beat South Africa on day three of the first Test at Centurion.
The opener, who put on 92 for the first wicket with Dominic Sibley, steered England to 121-1 at the close, with 255 still needed for what would be England's highest run chase.
South Africa were dismissed for 272, with Jofra Archer taking 5-102.
England, though, were afflicted by illness on day three.
Jos Buttler did not take to the field on the third day and was replaced behind the stumps by Jonny Bairstow, while captain Joe Root also spent time off the field.
The highest successful chase at Centurion by a visiting team was England's 251-8 in 2000, a Test which was later referenced in a match-fixing trial involving former South Africa skipper Hansie Cronje.
England will need to complete their highest run chase, surpassing the 359 they made at Headingley in August, if they are to win this Test.
Burns and Sibley played well in conditions that were suited to bowling. Burns was the more fluent of the two, hitting several confident drives through mid-wicket, while Sibley was patient against a disciplined Proteas attack.
The chase looked to have got off to a poor start when Burns was given out lbw to Kagiso Rabada for six in the first over, but a review showed the ball was missing off stump.
He also profited from another mistake in the field as the metronomic Vernon Philander found the outside edge of the bat, and the low offering was dropped by Rassie van der Dussen at first slip.
Sibley grew in confidence, clipping Dwaine Pretorius through mid-wicket for four, as the two shared England's highest opening partnership of 2019.
However, Sibley was visibly frustrated after he chipped a Keshav Maharaj delivery straight back to the bowler in his follow-through.
South Africa are without a win in five Tests but, on a pitch that has shown uneven bounce since the first day, it will still require a huge effort from England to secure an unlikely win.