Two tries put South Africa 20-6 ahead a minute into the second half and though England scored two quickfire rolling maul tries to get level, Schalk Burger got the key third Springbok score and the boot of flyhalf Pat Lambie brought them home.
The victory made it 11 wins and a draw for the Boks against England, dating back to 2006, and was a hugely satisfying one following their defeat by Ireland last weekend.
The frustration for England was that, just as a week ago against the All Blacks, they dominated the early stages but this time failed to turn possession into points and found themselves 10-0 down after 15 minutes after Jan Serfontein intercepted a Danny Care pass.
When England did fashion an opening, poor handling or bad decision-making let them down, encapsulated when massive lock Dave Attwood ignored a two-man overlap and backed himself to get to the line, only to blow the chance.
England had the best of possession and territory in the first half but were generally too lateral in their attacks and only two Owen Farrell penalties kept them in touch at 13-6 down.
Owen Farrell of England shouts instructions during the QBE Intenational match between England and South Africa at Twickenham Stadium (Getty)
Image credit: Getty Images
That gap became 14 points 38 seconds after the restart when Lambie chipped a perfectly weighted kick into the arms of Willie le Roux which the fullback gathered without breaking stride before slipping a lovely offload for Cobus Reinach to complete a wonderful score.
England needed to hit back immediately and did so emphatically in the way they know best.
A monster maul that South Africa, deprived of sin-binned lock Victor Matfield, were powerless to stop, sent prop David Wilson over and minutes later virtually the entire England team combined for another irresistible 40-metre charge that ended with Ben Morgan making it 20-20.
South Africa showed, however, that they too could score through the forwards when, still with 14 men, they rolled over the corner for Burger to score and Lambie took his side 10 points clear with a penalty and a drop goal.
Centre Brad Barritt scored England's third try in the last minute but, just as last week, it came too late and merely made the margin of defeat look more respectable.