With this win, the Faf du Plessis-led home side also took a 1-0 lead in the four-match series.
Chasing a challenging 376-run target, the visitors looked very much in control after being placed at 204/4 at one stage. However, it was then that Rabada came all-guns blazing and jolted the England middle and lower middle-order as the visiting batsmen failed to put up a fight and lost six wickets for 64 runs.
Openers Rory Burns (84) and Dominic Sibley (29) handed a perfect start to England, putting up a solid 92-run partnership for the first wicket before Keshav Maharaj (2/37) drew first blood, sending the latter back in the hut.
Nortje then dismissed a good-looking Burns before debutant Dwaine Pretorius got the better of Joe Denly (31).
England skipper Joe Root (48) and Ben Stokes, however, kept the fight going and forged a 66-run stand for the fourth wicket to help their side cross the 200-run mark. Just when the duo looked comfortable in the middle, Maharaj produced a much needed breakthrough as he dismissed Stokes, leaving the visitors at 204/4.
Soon after, Rabada rattled England's lower middle-order in quick succession and went on to put the final nail in the coffin as he dismissed Stuart Broad (6) to set up a comfortable victory for his side.
Put in to bat earlier, the hosts managed 284 runs in their first essay before they wrapped up their opponents at 181 to take a 103-run lead. They later rode on some valuable middle-order contributions to put up 272 on board in their second innings to hand a 376-run target to the visitors.
The two sides will now meet in the second Test, starting January 3 in Cape Town.
South Africa 284 and 272 beat England 181 and 268 (Rory Burns 84, Joe Root 48; Kagiso Rabada 4/103) by 107 runs
( With inputs from IANS )