England lost two wickets in the first session but added 50 runs to their overnight tally as they continued to chase an imposing 376-run target with the tourists’ hopes now hanging on captain Joe Root and his deputy Ben Stokes.
England was 171-3 at lunch on the fourth day with Root not out on 13 and Stokes scoring a circumspect four off 35 balls.
The usually swashbuckling Stokes had led England’s highest ever successful run chase, when they scored 362-9 at Headingley to beat Australia earlier this year and will be needed to do the same again on Sunday if England are to win against the odds.
Root scored a double century in New Zealand earlier this month as he returned to the form England will need from him as well.
England officials said their skipper had recovered from a bout of illness on Saturday, who spent some time off the field with fever and stomach problems.
Both Rory Burns, whose unbeaten 77 overnight had set up the potential of a record England win, and Joe Denly were dismissed after England resumed at 121-1 overnight.
Burns had been strangled by the bowling of Vernon Philander, whose first four overs of the morning were maidens.
When he was replaced in the attack by Anrich Nortje, the England opener saw a chance to begin to add to his run tally, only to sky a hook shot straight up into the air for Kagiso Rabada at mid-on to bag the catch.
Burns was out for 84.
Denly added 21 runs to his overnight 10 before being trapped leg before wicket by debutant Dwaine Pretorius and being unable to overturn the decision on review.
Batting looked more difficult on Sunday with more uneven bounce on the pitch, as was the case on Friday when 15 wickets fell.
Saturday’s overcast conditions meant the pitch in Pretoria was more docile, allowing South Africa to score 272 in their second innings to add to 284 in their first.
England were 181 runs all out in their first innings (Reuters/NAN)