London: Needing 346 to win the match, draw the series and stay top of the International Cricket Council rankings, England lost Alastair Cook and Andrew Strauss, both lbw to Vernon Philander, to close on 16-2.
Earlier, the England bowlers stuck to their task in dismissing South Africa for 351, although Hashim Amla was able to complete his second century of the series.
His dismissal for 121 was the first wicket in a spell of 3-14 from Steven Finn which gave Strauss's men a glimmer of hope.
But JP Duminy and Philander blunted the England revival and manoeuvred South Africa into a position from which it will take something extraordinary to prevent them from moving to the top of the rankings
Brief scores
South Africa 309 (Philander 61, Duminy 61, Finn 4-75) and 351 (Amla 121, Finn 4-60)
England 315 (Bairstow 95, Bell 58, Morkel 4-80, Steyn 4-94) and 16 for 2 (Philander 2-4)
Status England need 330 runs to win