Spinner Moeen Ali trapped De Villiers lbw for 37, and England swept away South Africa's last six wickets for only 38 runs on the final day to bowl out the top-ranked test team for 174.
Chasing a first series win over South Africa in more than a decade, England took a morale-boosting lead in the four-match series, with the second test in Cape Town to follow on Saturday.
England set the Proteas an almost unreachable target of 416 to win, or four-and-a-half sessions to survive for a draw.
Steven Finn finished with 4-42 and Ali 3-47 in the second innings to complete England's dominance.
South Africa wins toss and bats 1st in 2nd test vs. England