Captain De Villiers blasted 64 from 48 balls to lead the Proteas to 283 for seven in their 50 overs.
New Zealand battled to keep up with the scoring rate but they succumbed under pressure and were 221 all out in the final over of their innings.
De Villiers had been on a lean run in the series, but for once came to the crease with a platform laid after openers Hashim Amla (44) and Morne van Wyk (58) put on 89 for the first wicket.
The world’s top-ranked batsman in this format put on another 86 runs for the fourth wicket with David Miller (36), but was bowled by Doug Bracewell just as he began to accelerate at the start of the final 10 overs of the innings.
While de Villiers was at the crease, South Africa appeared to be on target to post a 300 plus total but his departure left Farhaan Behardien to get them close to that figure as he produced a neat 40 from 28 balls.
Seamer Ben Wheeler took three wickets for the tourists, but they came at some cost as he went for 71 in his 10 overs.
New Zealand looked good in reply when they went past 100 for the loss of just Martin Guptill (10) but as they tried to accelerate the scoring midway through the innings, wickets fell at regular intervals.
Key batsman Kane Williamson (39) was bowled by Imran Tahir, while opener Tom Latham (54) ran himself out attempting a tight second run. From there it was a procession.
Proteas all-rounder David Wiese registered career best bowling figures of three for 58, while young speedster Kagiso Rabada was impressive in returning two for 33 in his 10 overs.
(Reporting by Nick Said, editing by Pritha Sarkar)