Moeen Ali's dashing fifty all but put the fourth Test beyond South Africa's reach as England moved towards a series win at Old Trafford on Sunday.
When rain ended the third's play at 1615 GMT, England were 224 for eight in their second innings -- a lead of 360 runs -- with Ali unbeaten on 67.
South Africa already needed to set a new ground record if they were to end this four-match series all square at 2-2 as no side have made more in the fourth innings of a Test at Old Trafford to win than England's 294 for four against New Zealand in 2008.
Ali made South Africa pay for Dean Elgar dropping him on 15 when a low slip chance off left-arm spinner Keshav Maharaj did not stick.
He may come in at No 8 for England but off-spinner Ali -- who earlier in this match took 20 wickets in a Test series for the first time in his career -- made his name with Worcestershire as a top-order batsman.
Ali, who bats left-handed, was especially severe on Maharaj, hitting him for three resounding sixes.
The second of those, a straight drive that saw Ali complete a 49-ball fifty -- was 'caught' on the England dressing-room balcony by wicket-keeper Jonny Bairstow to the delight of the crowd.
England were bidding for a first home Test series win over South Africa since 1998, with Joe Root seeking a victory in his first Test series as England captain.
South Africa resumed on 220 for nine and were soon all out for 226 when Stuart Broad dismissed last man Duanne Olivier.
That gave England a healthy first-innings lead of 136.
Olivier's exit meant James Anderson, England's all-time leading wicket-taker -- was denied a maiden five-wicket Test innings haul on his Lancashire home ground.
But figures of four for 38 in 17 overs gave Anderson, who'd struck four times from the newly-named James Anderson End on Saturday, his best innings return in seven Tests at Old Trafford.
South Africa fast bowler Morne Morkel then removed both Alastair Cook (10) and Tom Westley (nine) with the aid of gully catches.
- Jennings fails again -
At lunch, England were 53 for two, with Keaton Jennings -- dropped in the slips on nought -- 17 not out.
But South Africa-born Jennings was unable to cash in on his reprieve.
The Durham left-hander had added just one to his interval score when, he edged a cut off Kagiso Rabada to first slip Hashim Amla.
Prior to Sunday's innings, there had been widespread speculation that the 25-year-old would be dropped for the start of England's upcoming three-Test series at home to the West Indies, which precedes an Ashes tour of Australia.
Jennings -- the 11th batsman chosen as an England opening partner for Cook since former captain Andrew Strauss retired in 2012 -- moved nearer the axe after totalling just 127 runs in four Tests this series at an average of 15.88.
Finding batsmen good enough to cement a place in the top order alongside Cook and Root has long been a problem for England's selectors.
Dawid Malan, out for scores of one and 10 on Test debut during England's 239-run victory in the third Test at The Oval, was looking for a big score after falling for 18 in the first innings of this match.
But the Middlesex left-hander, born in London but brought up in South Africa, exited for six -- having been dropped on five -- when Maharaj had him caught off bat and pad at short leg.
Root (49) and Ben Stokes (23), however, then shared a stand of 57.
They both fell to paceman Olivier, only playing this match after back injuries ruled out both Vernon Philander and Chris Morris.
Olivier, who also dismissed Bairstow, ended the day with fine figures of three for 38 but that was scant consolation to his side.