Broad’s brilliant return of 6-17 on a lively wicket skittled the Proteas for 83 in their second innings on the third day.
England reached their modest victory target of 74 with relative ease as captain Alastair Cook (43) top-scored in guiding them to 77 for three from 22,4 overs under gloomy skies.
The tourists now have an unassailable 2-0 lead in the four-match series, with the final game to be played in Pretoria.
South Africa bowled out England for 323 in the morning session for a slender first-innings deficit of 10 runs, but were no match for the bounce and movement of a rampant Broad as they crumbled to their second lowest test score since returning to international cricket in 1991.
Broad’s inspired spell after lunch was reminiscent of his 8-15 against Australia at Trent Bridge last August as he tore through the South African top order aided by some excellent catching.
After removing openers Dean Elgar (15) and Stiaan van Zyl (11), Broad grabbed the key wicket of captain AB de Villiers (0) when he induced an inside edge to wicketkeeper Jonny Bairstow.
It got worse for the home side when their other kingpin Hashim Amla (five) clipped the ball to James Taylor at short-leg, who showed excellent reactions to take a low catch.
Temba Bavuma (0) became Broad’s fifth victim when he tried to evade a lifting delivery, but only succeeded in gloving the ball on to his stumps.
Broad’s brilliant day was completed when he ended the innings with an excellent catch off his own bowling as he dived forward grab a ball that had come off the boot of batsman Faf du Plessis (14).
Ben Stokes grabbed two scalps and there were also wickets each for James Anderson and Steven Finn. The latter complained after the innings of tightness on his left-side and will be assessed on Sunday.
Rabada, 20, had earlier claimed his first five-wicket haul in test cricket when he bagged 5-78 to limit England to 323.
It was a first home series defeat for South Africa against a team other than Australia since England won 2-1 in 2004-05.