Counter-attacking Matt Prior pushed England up to 385 all out, despite a Dale Steyn-inspired fightback from South Africa on a rain-interrupted second day of the first Investec Test.
A resurgent Steyn removed England centurion Alastair Cook, and then Ravi Bopara for a duck, among four wickets for only 59 runs this morning.
But as black clouds somehow skirted the Kia Oval, and presumably dumped their contents nearby, Prior (60) still helped England from their start-of-play 267 for three to recover a little composure and put themselves within sight of 400 when they were all out in mid-afternoon.
The long-threatened storm broke almost immediately after tea, but South Africa still had time to reach 86 for the loss of Alviro Petersen thanks to a studied and unbroken stand between Graeme Smith and Hashim Amla.
Cook (115) dug in throughout yesterday, but the game changed in two successive wicket maidens from Steyn.
The seamless accumulation of day one was replaced by England's struggle to retain control as Steyn upped the ante and then Jacques Kallis stifled resistance.
South Africa's world premier fast bowler had a point to prove, and wasted little time doing so.
In his second over, Steyn tempted Cook to drive and bowled him off an inside edge to end his 295-ball vigil.
With Cook gone, a big moment came and went for Bopara - returning for his first Test since last year at this venue.
He was bamboozled by an odd, looping bouncer from Steyn. Bopara lined himself up for the pull, and when he tried to bale out somehow managed only to offer a straightforward catch behind after the ball ran over the face of his bat.
It was a frustratingly soft dismissal, and left Ian Bell and new batsman Prior with much work to do to try to re-establish England's dominance.
They survived Steyn's spell of 5-2-8-2, only for Bell to fall in the first over from his replacement Kallis.
He might already have gone, run out by half the pitch had Petersen managed to throw down the stumps from gully. But that mattered little when Bell left a delivery from Kallis which brushed over the off bail, just enough contact to dislodge it.
It took until the 19th over of the morning for England to at last bring up the 300, Tim Bresnan doing the job in style with a flamboyant extra-cover drive for four - the first runs off Kallis, after four previous maidens.
Prior had given a chance to gully on 17, Jacques Rudolph unable to complete a diving catch low to his left off Morne Morkel.
Then Bresnan succumbed in Imran Tahir's first over, edging down on to his stumps as he tried to force a leg-break into the off-side off the back foot.
England had lost five wickets for 62 runs, since Kallis got Kevin Pietersen last night, and this heavyweight contest was very much back in the balance.
So it remained, despite a typically fluent and resourceful 75-ball half-century from Prior - completed with his ninth boundary, driven between bowler and mid-on off Vernon Philander.
The England wicketkeeper lost his chum Stuart Broad, another bowled by one that just clipped the bails - this time from Philander.
Prior went himself, edging Morkel (four for 72) behind as he looked for his trademark off-side outlet, and last man James Anderson became stand-in wicketkeeper AB de Villiers' fifth catch of the innings in the same over.
But England's last three wickets had nonetheless accrued 72 runs - a decidedly handy buffer should South Africa prosper in improved weather tomorrow, before any predicted wear in a dry batting surface becomes significant.
The tourists' reply suffered an early setback when Anderson snaked an inswinger through Petersen's defences, to the back pad, to have him lbw for nought.
But from one for one, captain Smith and Amla saw their team safely to stumps in a promising partnership either side of a near two-hour rain delay.
There was one moment of fortune for Amla on 42 when he flashed a half-chance high to Andrew Strauss' left at slip, where the England captain could only parry the ball for four - completing Bopara's blank day as his two late overs of medium-pace, like his batting, came to nought.