All-rounder Moeen Ali's thrilling knock of 67 not out from 59 balls lifted England and put them 360 runs ahead late in the day.
England ended on 224-8 after struggling at 134-6 when Moeen walked to the crease.
Earlier, South Africa’s last batsman, Duane Olivier top-edged a bouncer to become the third victim for Stuart Broad to ensure the visitors innings ended at 226.
After a day of changing fortunes, England will now be confident of wrapping up a 3-1 series win.
England 362 and 224 for 8 (Moeen 67*, Broad 0*, Olivier 3-38) lead South Africa 226 (Bavuma 46, Anderson 4-38) by 360 runs.
Matches Tagged in ClipDex2017 ENG v RSA 4th Test
Series Tagged in ClipDex2017 ENG v RSA Test serie ...
Players Tagged in ClipDexStokes, Benjamin A Root, Joseph Edward Anderson, James M Westley, Thomas Maharaj, Keshav A Bairstow, Jonathan M Broad, Stuart C J Olivier, Duanne Malan, Dawid J Morkel, Morne Roland-Jones, Toby Moeen Ali
Grounds Tagged in ClipDexOld Trafford
Categories Tagged in ClipDexTest Matches