Tahir, who took two wickets in two balls in his second over, had his figures marginally sullied by successive sixes from Colin de Grandhomme but still finished with a career-best 5-24 in 3.5 overs, with the home batsmen unable to pick his googly.
The 37-year-old was able to build on a superb performance by opening bowler Chris Morris, who was also denied a hat-trick on his way to figures of 2-10 in his initial three-over spell.
Andile Phehlukwayo claimed three victims, including the vital wicket of New Zealand captain Kane Williamson, as the hosts were dismissed for 107 in 14.5 overs in pursuit of South Africa's 185 for six.
"They played well in all departments. Frustrating from our perspective, we didn't fire a shot," Williamson told reporters.
"On this ground, you don't know what a good score is. We pulled it back (when bowling) and probably gave ourselves a par target. But rotating strike is hard on drop-in surfaces and we lacked partnerships."
The loss was New Zealand's first at home this summer.
The South African top order also underlined how dangerous they would be in the five match one-day series that starts at Seddon Park in Hamilton on Sunday with nearly all of them making telling contributions.
[caption id="attachment_47411" align="aligncenter" width="512"]
Chris Morris of South Africa (L) celebrates the wicket of New Zealand's Colin Munro (R) during the Twenty20 international cricket match between New Zealand and South Africa at Eden Park in Auckland AFP
While Quinton de Kock fell for a duck in the third over, Hashim Amla (62), captain Faf du Plessis (36), AB de Villiers (26) and JP Duminy (29) all scored quickly.
Amla hit nine boundaries and a six in his 43-ball innings and combined with du Plessis in an 87-run partnership from 8.3 overs as the visitors looked well set to score in excess of 200.
De Grandhomme, however, dismissed both du Plessis and de Villiers to leave their side on 145-4 in the 16th over, ensuring the all-rounders needed to push the innings on.
Opening New Zealand bowler Trent Boult finished with an impressive 2-8 from four overs.
South Africa 185 for 6
(Amla 62, Du Plessis 36, Boult 2-8) beat New Zealand 107
(Bruce 33, Tahir 5-24, Phehlukwayo 3-19,Morris 2-10) by 78 runs