Alastair Cook needs 50 more to become the first Englishman to score 10,000 Test runs after steering his side to 138-2 on day two of the fourth Test against South Africa.
Captain Cook struck a measured 67no, his first fifty of the series, sharing an unbroken third-wicket stand of 60 with Joe Root (31no) as the tourists reduced their deficit to 337 runs after bowling the home side out for 475.
That tally featured a maiden Test century from Quinton de Kock, who struck 17 fours and two sixes in an unbeaten 129 off just 128 balls.
De Kock, who survived sharp chances to Ben Stokes on 28 and Cook on 90, shared dogged stands of 50 and 82 with Kyle Abbott (16) and Dane Piedt (19) respectively as South Africa added 146 runs to their overnight 329-5 before Ben Stokes (4-86) wrapped up the innings.
England's top-order fragility was again exposed as Alex Hales (15) drove Kagiso Rabada tamely to point and Nick Compton (19) once again fell once set, albeit this time falling lbw to a delivery that kept unexpectedly low.
Cook, with just 103 runs to his name in the preceding three Tests, reached his half-century off 98 balls - the pick of his eight fours a thumping cut off Rabada. For opening partner Hales, though, the struggle goes on having scored fewer than 20 runs in five of his seven Test innings.
Root safely negotiated a couple of deliveries that kept low early in his innings, punching Kyle Abbott off the back foot for four in sublime fashion as he added 50 runs in 103 balls with his skipper.
The pair suffered few alarms on a pitch offering spinner Dane Piedt assistance, aside from a Cook inside-edge off Morne Morkel that ballooned into the off-side before dropping safely.
England began the day brightly, claiming two early wickets to reduce South Africa to 336-7.
The home side almost lost De Kock, back in the side after missing the third Test with a knee injury, in the third over of the day when he'd scored just 28 but Stokes couldn't quite cling on to a stinging chance in the gully off James Anderson.
England did achieve an early breakthrough in the next over, though, when Temba Bavuma (35) snicked a Stuart Broad leg-cutter behind to Jonny Bairstow while on the drive.
Four balls later Anderson trapped Rabada first ball with a perfect in-swinger to reduce South Africa to 336-7 but there the slide stopped as De Kock and Abbott rebuilt.
His confidence growing after pulling Moeen Ali for six, Abbott drove Stokes for four to bring up the 50-run stand off 52 balls only to succumb lbw four balls later.
Wicketkeeper Bairstow and first slip Cook - who offered Hashim Amla and Stephen Cook a life apiece on day one - were again at fault when De Kock, on 80, edged the ball between them off Chris Woakes.
The batsman got another life when a fierce drive burst through Cook's hands at short extra cover off Moeen before completing his first Test century with a single into the covers.
De Kock found an admirable foil in Piedt, who bedded in for 104 balls before Stokes found his edge and trapped last man Morkel with a full delivery to end England's 132-over stint in the field.
Watch highlights of day two from 7.45pm on Sky Sports 2, then don't miss The Verdict from 8.45pm on the same channel. Then follow all of the day three action on our match blog from 7.45am on Sunday, with live coverage beginning on Sky Sports 2 from 8am.