South Africa bowled England out for 101 on the final morning to seal a 280-run consolation victory in the final Test.
The hosts needed only 66 minutes and 82 deliveries to take the remaining seven England wickets in Centurion.
Kagiso Rabada, 20, became the youngest South Africa bowler to take 10 wickets in a match, and finished with 6-32 to add to his first-innings 7-112.
Morne Morkel claimed 3-36, with James Taylor’s 24 the highest score for England, who won the series 2-1.
England, beaten 2-0 by Pakistan in the United Arab Emirates earlier this winter, next play Test cricket against Sri Lanka at Headingley on 19 May.
Having reduced England to 52-3 on Monday, South Africa hurried through the rest of the order thanks to some splendid bowling on a wearing surface.
In all, England lost their last seven wickets for 43 runs in 10.5 overs as any hopes of batting out the day vanished amid a flurry of reckless strokes.
Fittingly, the lithe paceman Rabada, in only his sixth Test match, took the final three wickets as England were skittled out before a drinks break was required.
That gave Rabada match figures of 13-144, the best by a South Africa bowler on home soil and the second-best in their history.
The man of the match, who was also the leading wicket-taker in the series, said: “It was a bit up and down so the key was the hit the deck and bowl the ball in a good area and I believed you’d get your rewards.”
South Africa’s victory was a convincing one, a splendid recovery after their defeats in Durban and Johannesburg. Most pride of all will come in the feat of Rabada, only the third South African to take so many wickets in a Test, following Makhaya Ntini and Hugh Tayfield. He finished with 13 for 145 in the match, pronouncing that he has the capability to become the inspiration in South Africa’s attack for many years to come.