After setting the home side an unlikely 466 to win, the tourists were frustrated by 98 from Rassie van der Dussen, who added 92 with Faf du Plessis. They were dismissed in successive overs by Ben Stokes and Mark Wood just before tea to leave South Africa 187-4.
Stuart Broad accelerated England’s charge with two wickets in an as many of his own overs after the break.
The retiring Vernon Philander was the first to fall in a final collapse of 4-14 to 274 all out. Wood taking the last wicket to end with 4-54 in the innings and nine in the match.
It gives England three wins on a tour of South Africa for the first time since 1913-14 and also means they have won three successive Test series against the Proteas.