"A great day's play and a great Test match," England seamer Stuart Broad told Sky Sports. "We had to work incredibly hard, we knew we were going to have to do that.
"It was incredible discipline from South Africa throughout the day but we kept saying one bit of magic.
"We set some funky fields. One breakthrough and we could apply some pressure. You need a lot of character and skill to chase 10 wickets. We are proud of taking our chances."
Chasing a Test-record 438 to win, South Africa looked relatively comfortable as they reached 237 for five with 26 overs remaining in the match.
For the second time in the innings, however, a key man gave his wicket away. De Kock (50) attempted to pull a dragged down delivery from part-time leg spinner Joe Denly and succeeded only in picking out Zak Crawley at mid-wicket.
It was an unnecessary stroke that opened the door for England and when Broad removed the obdurate Van der Dussen (17 from 140 balls), it was well and truly ajar.
Stokes accounted for Dwaine Pretorius and Anrich Nortje in successive balls, both caught at slip, and sealed the victory in front of an ecstatic Barmy Army when Vernon Philander was caught fending a lifting delivery to Ollie Pope.
South Africa had given themselves a chance with some stern resistance, not least from debutant opener Pieter Malan who lasted 288 balls for his 84.
But England looked on course for victory at lunch after grabbing the key wicket of South Africa captain Faf du Plessis (19), who will be disappointed with his shot selection as he tried to take on spinner Dom Bess with a powerful sweep and picked out Denly at square leg.
"The boys fought very hard. They bowled really well and congrats to them," De Kock said.
"Obviously we tried to push them as far as we can. Unfortunately we fell just short. I was disappointed because we had a good partnership going and I smoked one straight to a fielder."
South Africa won the first Test in Pretoria by 107 runs. The third match in the four-Test series starts in Port Elizabeth on January 16.