South Africa 481 for 8 dec (du Plessis 112*, Duminy 88, de Kock 82, Wagner 5-86) and 132 for 7 dec (de Kock 50, Southee 3-46) beat New Zealand 214 (Williamson 77, Rabada 3-62, Steyn 3-66) and 195 (Nicholls 76, Steyn 5-33) by 204 runs
Scorecard and ball-by-ball details
A masterful display of swing bowling from Dale Steyn, who picked up his first five-wicket haul in international cricket since December 2014, helped South Africa bowl New Zealand out for 195 in their chase of 400 on the fourth day in Centurion. Steyn and Vernon Philander, abetted by exaggerated variable bounce on a deteriorating SuperSport Park surface, set up South Africa's first Test series win since early 2015 by ripping through New Zealand's top order in a devastating seven-over period before lunch.
Despite an impressive half-century from Henry Nicholls, New Zealand never really recovered from being 18 for 4 at lunch, and they were eventually bowled out half an hour from stumps.
Steyn landed the first ball of the fourth innings in the channel outside off stump - it was wide enough for Tom Latham not to play but the extra bounce caught him unawares, and the ball clattered into the stumps off Latham's withdrawing bat. It was the third time in three innings on this tour that Steyn had dismissed Latham.
Five balls later, Martin Guptill got an unplayable outswinger: it pitched on off and swerved away to take the outside edge to Hashim Amla at first slip.
The variable bounce kept troubling New Zealand. In the second over, Kane Williamson was rapped on the glove by an inswinger from Philander that reared at him from a good length. In the next over, Steyn got one to land on a similar length and scoot along the surface to Ross Taylor, trapping him in front. Could New Zealand's situation get worse?
It did. Williamson, perhaps still suffering the after-effects of the blow to his left hand, wafted at a wide delivery from Philander. He had avoided playing that line throughout the first innings. The ball swung further away and took his outside edge, and wicketkeeper Quinton de Kock completed a stunning one-handed catch low to his right.
Nicholls offered New Zealand's only real resistance with 76, his highest Test score. He was particularly effective square on either side of the wicket, picking off straight deliveries and punishing width outside off. When the bowlers overpitched, he collected runs through vacant areas down the ground.
After weathering a tough period before lunch, he added 68 with Watling for the fifth wicket. With the ball moving both ways, Nicholls and Watling left well outside off, forcing the seamers towards the stumps. The quicks were continually rotated and batting became gradually easier as the middle session wore on.
Just when it looked like New Zealand would get through the session unscathed, the offspinner Dane Piedt got one to spin back viciously. Watling shuffled across, missed his flick, and was struck in front of off stump. Watling reviewed, but umpire's call on impact meant South Africa had their only wicket of the session.
Kagiso Rabada, hitting the high 130-kph range as opposed to the 150 mark he regularly clocked in the first innings, struggled for fluency, rhythm and accuracy before tea. A number of wayward deliveries on either side of the wicket were easily avoided or dispatched to the boundary. However, he returned late in the day to pick up two-lower order wickets: he had Tim Southee bowled with a spearing yorker on off stump and beat Neil Wagner for pace to pin him in front of middle and leg.
Mitchell Santner, Doug Bracewell and Southee all got off to starts, but could not stay long enough at the crease to help Nicholls to a maiden Test ton. At 195 for 9, Nicholls was quickly running out of partners and du Plessis recalled Steyn. A top-edged pull off a short delivery, aimed at Nicholls' ribs, was taken at fine leg to end New Zealand's resistance.
In the morning, resuming from a score of 105 for 6, overnight batsmen Temba Bavuma and Vernon Philander were patient early, leaving and blocking Trent Boult and Tim Southee, both of whom generated appreciable lateral movement like they had on the third evening. Philander looked untroubled until he left a good-length delivery from Southee that jagged back prodigiously to uproot the off stump. South Africa declared at 132 for 7, having added 27 in the first hour.