Captain Alastair Cook led England's fourth Test fightback with his first half-century of the series after South Africa ran up 475 on day two in Centurion.
Cook has been short of runs despite England's 2-0 lead but, after Quinton de Kock's fluent maiden hundred put the Proteas firmly in control, gave the reply some backbone with a steely 67no.
A significant personal milestone awaits on day three if Cook can reach 117 - the magic number that would make him the first Englishman, and 12th batsman ever, to reach 10,000 Test runs.
But he also has a job to do for his side, who are still 337 behind on 138 for two and will have to work hard to retain unbeaten on tour.
Joe Root is also in place on 31no but England will be wary of what awaits on a potentially uneven pitch.
Nick Compton was undone by a ball that kept devilishly low, the first of several that failed to get up as expected, though Alex Hales can have no such complaints.
Facing a tricky nine-over spell before tea, he buckled.
Hales made 15 before driving Kagiso Rabada loosely to point, and has now scored under 20 in five of his seven Test innings.
De Kock had earlier made an attractive 129 not out, cashing in on England's increasingly fallible fielding.
They offered him three lives - on 28, 80 and 90 - and though none of the chances were regulation, they all count as missed opportunities.
Ben Stokes put down the first, a tough one-hander at gully, then wicketkeeper Jonny Bairstow and Cook at slip let an edge sail between them unobstructed.
Finally, Cook had the foresight to put himself in at short cover but lacked the reactions to cling on to a firm De Kock drive.
With De Kock's fellow centurions Stephen Cook and Hashim Amla also put down on the opening day, the size of the Proteas total will be a major frustration in the away dressing room.
It was, nevertheless, the lowest completed innings from a line-up boasting three separate hundreds.
De Kock missed the last Test with an injury sustained while walking his dogs, but was fit and ready this time, scoring his runs at just faster than a run-per-ball and finishing with 17 fours and two sixes.
Moeen Ali suffered particularly at his hand, as De Kock plundered 45 runs off just 24 deliveries from the spinner.
Most impressive was the way the 23-year-old coaxed partnerships worth 139 for the last three wickets.
When Stuart Broad removed Temba Bavuma early on and James Anderson sent Rabada back for a golden duck, England appeared to be on a roll.
Bowling South Africa out before lunch or for less than 360 appeared realistic aims but De Kock, assisted ably by Kyle Abbott and Dane Piedt, did not allow the innings to fold.
He eventually ran out of partners, thanks to Stokes' perseverance.
The all-rounder took out numbers nine, 10 and 11 to finish with four for 86.
Abbott and Morne Morkel were both pinned lbw by the swinging ball with Piedt caught behind.
Hales will have been desperate to lead the response but lingered just 20 minutes before departing in regrettable fashion.
For now, the identity of Cook's long-term partner must remain an open question.
The skipper was left to knuckle down with Compton, England's two most conservative batsmen tasked with halting the South Africa surge.
They put on 56 in 18 overs, a reasonable run-rate kept alive mostly by Cook's occasional moments of dominance.
He deployed his attack shots wisely, pulling crisply when invited and finding the gaps well backward of point.
Compton looked cautious but sound until he was cut off on 19, struck closer to ankle-height than knee.
Root soon saw another fail to get up outside off stump, much to the home side's delight.
Cook went past his previous top score of the trip, 43, by sweeping Piedt for four and went past 50 with a punchy back-foot drive.
Root was more careful than usual but still pierced the infield with a couple of his favoured back-foot drives and safely negotiated a path to stumps.