Pace bowler Dale Steyn ripped through the West Indies top order to claim his 25th five-wicket haul in Test cricket and give South Africa a crushing innings and 220-run victory on day four of the first Test in Pretoria.
The Proteas now lead the three-test series 1-0.
The West Indies' frailties with the bat were cruelly exposed by the top-ranked South Africans, with Steyn leading the charge as he finished with six for 34 having gone wicketless in the first innings.
The visitors resumed in the morning session on 76 for two in their second innings, still trailing by 275 runs after being forced to follow on, with hopes of batting deep into the day to save the Test.
But a fired-up Steyn sparked a precession of wickets as the West Indies were bowled out for 131, unable to cope with the hostility of the home quicks.
Steyn had limped off on the third afternoon with a groin problem but showed no signs of discomfort as he steamed in to skittle the West Indies top order in a spell that lasted 90 minutes.
The loss of Leon Johnson (39) and Shivnarine Chanderpaul (four) early left the West Indies in trouble, but their situation became a hopeless one when Marlon Samuels looped up a catch for Dean Elgar off a rampant Steyn with his score on 17.
Captain Denesh Ramdin (four), who had called for greater grit and application from the batsmen in the lead-up to the test, lasted just two balls as Steyn claimed his fourth by inducing an edge off the shoulder of the bat to a leaping De Villiers.
The game was up for the tourists and Steyn picked up the final two wickets, with Kyle Abbott taking an easy catch off Sheldon Cottrell at mid-wicket to end the match with bowler Kemar Roach not batting in the innings as he rests his injured ankle.
The West Indies were bowled out twice in the Test in just under 103 overs, leaving them with much to contemplate ahead of the second match in Port Elizabeth. That starts next Saturday.