Kagiso Rabada took six wickets as South Africa recovered from a batting collapse on day three to beat West Indies by 87 runs in the first Test in Centurion.
A haul of 6-50 from Rabada carried the hosts home as West Indies were bowled out for 159 in their second innings, with Jermaine Blackwood's terrific 79 from 93 balls providing the chief resistance.
The SuperSport Park crowd had seen South Africa fall from their overnight 49-4 to 116 all out in the morning session, with Aiden Markram following his century in the first innings with 47 as only two others reached double figures.
Kemar Roach took 5-47, with Markram among his victims, to fuel hopes of a first Test win for West Indies against South Africa since December 2007.
Yet momentum began to tilt back the Proteas' way when West Indies captain Kraigg Brathwaite fell to Rabada just before lunch, before any runs went on the board in the chase.
The tourists needed 247, but a wretched start saw them crumble to 20-4 and left the middle and lower order with a cliff face to climb.
Rabada had Brathwaite and Raymon Reifer caught behind by Heinrich Klaasen, before Marco Jansen drew a badly timed hook from Tagenarine Chanderpaul and then bowled Roston Chase with the next ball.
They were 33-5 when Gerald Coetzee had Kyle Mayers taken at slip, and it was only Blackwood keeping West Indies in the game.
He delivered a sparkling innings that nobody else could match, with Joshua Da Silva (17) and Jason Holder (18) briefly joining him in handy stands, but both fell to edges off Rabada.
Eventually, so too did Blackwood, a fiery delivery from Rabada into the body jabbed to Markram at second slip.
That gave South Africa a ninth wicket and it was effectively job done with the dangerman out of the way. Rabada duly wrapped it up, pinning Roach lbw.
Rabada hits Windies for six
This was Rabada's first six-wicket haul in Tests since taking 6-54 against Australia in March 2018, and his three best innings performances have all now come at Centurion. This ranks third on the list, behind the 7-112 and 6-32 that he took in the same game against England in January 2016.
It was not enough for man-of-the-match honours this time, though, with Markram taking that award.
Proteas keep rivalry one-sided
South Africa led by 130 after the first innings of this match, meaning their dismal display with the bat second time around did not prove too costly. The result means they are now unbeaten against West Indies in their last 11 Tests (W9 D2), with this a fourth victory on the bounce. Indeed, all four matches between these sides at SuperSport Park have been won by the hosts.
Home captain Temba Bavuma made a pair of ducks in his first game as skipper, but got away with it. The second and final Test of this series begins at the Wanderers in Johannesburg next Wednesday.