A battling 77 not out from Rory Burns on Saturday gave England a fighting chance of improbable success as they need 255 more runs for victory in the first test against South Africa at Centurion Park.
Set an imposing 376 runs to win the first of the four-match series, England reached 121 for one wicket at stumps on the third day after a positive start to an enormous task.
No team has scored more than 251 to win a test at the Pretoria venue, where batting last is difficult on a deteriorating pitch, but England defied the odds to keep in the hunt with two days still to bat.
Burns and Dom Sibley put on 92 for the opening wicket before Sibley (29) chipped the ball back to spinner Keshav Maharaj for a caught and bowled.
Burns, who survived a review in the first over, played an attacking innings with Joe Denly (10 not out) in a supporting role.
South Africa, who will have to take nine wickets to end a run of five successive test defeats, were bowled out for 272 in their second innings, just before tea on Saturday, after frustrating England in the field.
With 15 wickets falling on a lively pitch on Friday, England would have been expecting to wrap up South Africa a lot earlier after they resumed at 72-4 overnight.
But the home side extended their overnight lead of 175 runs by 200 as debutant Rassie van der Dussen scored 51, Vernon Philander 46 and nightwatchman Anrich Nortje 40.
Jofra Archer did bag a five-wicket haul but it cost him 102 runs off 17 overs, including a bashing from Quinton de Kock who smacked him for three sixes in a cameo of 34 runs.
De Kock who made 95 in the first innings, began by bludgeoning Archer for successive sixes off only the second and third balls he received to race to 30 runs off 17 balls at lunch.
But he turned circumspect after the break and went out meekly as he nicked Ben Stokes behind.
Instead it was Philander who kept the post-lunch runs flowing, taking his tally from five to 46 before being the last man out.
South Africa were sent into bat on the first day and made 284 in their first innings before then bowling England out for 181.