Dale Steyn claimed a six-for, his 25th five-wicket haul in his 76th Test, as South Africa tore through West Indies' batting order to secure victory in the series opener by an innings and 220 runs.
The tourists began day four at Centurion still 275 runs adrift of their opponents’ first-innings score, having been bowled out for 201 in response to the Proteas’ 552 for five declared.
And an overnight score of 76 for two in the second innings quickly became 131 all out as Steyn ripped apart a line-up in which only four players managed double figures.
Steyn, who had not struck in the first innings, finished with 6-34 from 8.2 overs, only Leon Johnson providing significant resistance with a stubborn 39 from 88 balls.
Johnson was already at the crease when play resumed on the fourth morning, but he could only add six runs to his overnight score before edging Steyn to acting wicketkeeper AB de Villiers.
De Villiers was deputising for Quinton de Kock, who has been sidelined for the rest of the series, including the limited-overs internationals, by an ankle ligament tear.
Steyn, the world's top-ranked Test bowler, and de Villiers combined again two overs later to cheaply remove Shivnarine Chanderpaul like Johnson as West Indies moved ever closer to the prospect of a humiliating defeat.
Marlon Samuels and Denesh Ramdin were then dismissed in the space of three balls by Steyn to leave the tourists on 105 for six.
However, there was no end to their anguish with Morne Morkel accounting for Jermaine Blackwood before Steyn mopped up the last two wickets of Jerome Taylor and Sheldon Cottrell, with Kemar Roach unable to bat because of an ankle injury.
Roach has also been ruled out of the second Test, which begins on Boxing Day, in Port Elizabeth.