Zak Crawley scored a maiden Test half century before South Africa fought back to restrict England to 192 for four when bad light stopped play early in the opening day of the fourth Test on Friday.
Crawley suffered a nasty blow to the head but still made 66 as he and Dom Sibley put on 107 for the opening wicket, but the home side hit back with four wickets in an extended evening session, including the prize scalp of Ben Stokes.
Rain delayed the start of the final Test in the series, which England lead 2-1.
England captain Joe Root, who won the toss and elected to bat, and Ollie Pope will be seeking to extend their 35-run partnership when play resumes on Saturday.
Root is 25 not out while Pope is unbeaten on 22.
Crawley reached his 50 in just 80 balls as he dominated a mediocre-looking home attack in the opening 30 overs but was struck on the helmet by a 149 kph bouncer from Anrich Nortje and needed a lengthy break before being able to continue.
Sibley was the first wicket to fall, in the third over after tea as he steered a rising delivery from debutant Beuran Hendricks down leg side and was caught by diving wicketkeeper Quinton de Kock.
Sibley was given out when on 10 but the decision was overturned on review and he was then caught in the gully when on 12 but Vernon Philander overstepped the mark and was no-balled. Sibley was eventually out for 44.
Crawley was undone by his own indecision as he played at a Philander delivery and top edged it to Rassie van der Dussen, who ended up claiming three catches at slip.
“It was a great feeling to put on 50 but shame not to get a bigger score,” said Crawley.
Joe Denly was dropped twice — albeit difficult chances — before being caught off the bowling of Dane Paterson and Stokes followed cheaply for just two after edging Nortje’s effort, sparking joyous celebrations on the field.
Anticipating a seamer-friendly conditions, both teams dispensed with their frontline spinner when they made their team selection before the belated start.