England spinner Dom Bess claimed his first five-wicket test haul on Saturday before persistent drizzle threatened to loosen England's stranglehold on South Africa on the third day of the third test on Saturday.
The rain reduced play in the morning session at St George's Park to one hour and 45 minutes, and the match had yet to resume by midafternoon.
Bess rampaged through the home side's top order, leaving South Africa on 113 runs for five wickets, still 386 behind England's mammoth first-innings total of 499 for nine declared.
The 22-year-old had snagged two overnight as South Africa lost wickets at the start of their innings in the gloom at the close of the second day, and he picked up where he left off on Saturday.
Dean Elgar was dismissed first, edging the ball off his pad to Ollie Pope at silly point, for 35 runs followed by captain Francois du Plessis, whose tenure as skipper of the South African side is now seriously in question.
He continued his poor form by belting two boundaries and then perishing to Bess in the same fashion as Elgar, making only eight runs.
Bess then saw captain Joe Root drop nightwatchman Anrich Nortje at first slip and Pope fail to snag a half-chance off Rassie van der Dussen.
But Bess' fifth wicket came two balls later, to joyous celebration, as Van der Dussen played on and was bowled for 24.
Bess had not been selected for the tour at first, but he was flown out to South Africa just before Christmas as cover when a virus struck the England camp.
He had figures of 5-41 when lunch was called, with Nortje on 14 not out and Quinton de Kock yet to score.
It continued to drizzle throughout the scheduled afternoon session, with the covers tantalisingly coming off three times but then being quickly put back on again.
After receiving a pounding from the England batsmen on the first two days, South Africa now face the prospect of needing to bat out the test to avoid defeat, similar to the last test in Cape Town when England clinched victory in the last hour on the fifth day.
England now hold the upper hand with the series level at 1-1.
The fourth and final test is in Johannesburg next week.