Pakistan's total of 293 for seven -- inspired by a maiden hundred to opener Mohammad Hafeez and a blistering late attack from skipper Shahid Afridi -- was always going to be competitive, but it proved far more than that as the hosts struggled to 250 for nine in reply.
The tourists' 43-run victory saw them level the six-match series at 1-1 as both teams head to Napier for the fourth match on Tuesday.
New Zealand started their chase brightly enough on a good batting deck.
They were on track at 61 for one after 10 overs but the loss of Martin Guptill, who looked good in scoring a run-a-ball 39, and captain Ross Taylor for six reduced them to 80 for three.
Scott Styris, with 46, and Kane Williamson, with 42, steadied the ship with a measured 81-run partnership from 110 balls for the fourth wicket, but Styris' dismissal triggered a mini-collapse.
The hosts managed just 39 runs for three wickets between the 30th and 40th overs, and they never recovered, losing just their fourth match in the last 16 here at the inner-city stadium.
Brendon McCullum, returning to the finishing role at No 6, was their big hope but he was run out by Jacob Oram for 12.
Oram, debutant Luke Woodcock and Kyle Mills hung around but the hosts were undone by some wily change of pace and Pakistan's go-to man, Umar Gul, who was the outstanding bowler of the day with two for 31 from 10 overs.
Hafeez led the way with the bat, however, guiding his team out of early trouble before Afridi and Umar Akmal provided spectacular late fireworks as Pakistan posted an above-par first innings total.
Hafeez stroked 12 fours and hit two sixes in a 144-ball knock of 115, his first ton in 61 matches, before Afridi and Akmal fired with some devastating late hitting. Afridi strode to the wicket in the 44th over and thrashed 65 from just 25 balls, an innings including five sixes and five fours as all parts of the stadium were explored.
His 19-ball half century was just two balls shy of Sanath Jayasuriya's world record.
Akmal's 44 from 29 balls was almost as impressive, the Pakistanis taking 72 runs off five power-play overs from the 43rd over.
The tourists had been meandering at 168 for four in the 40th over, but Afridi and Akmal unleashed carnage in the final 10 overs, Pakistan scoring 125 runs as New Zealand's death bowling was found wanting under pressure.
Pakistan made a terrible start, though, reduced to 13 for two after Tim Southee took a wicket in each of his first two overs.
But Younis Khan, with 22, and Misbah-ul-Haq, with 35, each combined with Hafeez to steer Pakistan out of trouble.
The going was only steady as Southee, Mills, Oram and left-arm spinner Woodcock kept things tight in the middle overs, though Oram was taken to by Afridi in a ninth over that conceded 22 runs during the final fling.
Woodcock bowled well with good drift but without luck. His 10 overs went for 46 runs and he should have had a first wicket at this level but McCullum fluffed a straightforward stumping when Misbah was on eight.
It was McCullum's second mistake in a patchy performance with the gloves. The wicketkeeper dropped a tough chance from Hafeez low to his right when the batsman got a thick edge off Oram's bowling on 49 but took a good catch to finally get rid of Afridi.
Hamish Bennett, impressive in the first match at Wellington, struggled for pace into the wind and bowled too short, conceding 54 runs from seven overs with two wickets.
Earlier, Taylor declared that he had never seen a pitch as green as today's surface after the covers were lifted following morning rain, so bowling had been an easy decision.
Pakistan would also have bowled but will now be happy to have lost the toss.