Spinner Mohammad Nawaz took four wickets to help Pakistan restrict New Zealand to 261 all out on Wednesday after opener Devon Conway hit a century in the second day-night international in Karachi.
Nawaz finished with 4-38 as New Zealand slumped from a strong 183 for one in 29.5 overs to 206-6, losing five wickets for 23 runs in the space of 40 deliveries.
Pakistan lead the three-match series 1-0 after winning the first game — also in Karachi — by six wickets on Monday.
New Zealand, who won the toss and batted, were lifted by a second-wicket stand of 181 between Conway (101) and Kane Williamson (85) before they slumped to the spin of Nawaz.
Fast-bowler Naseem Shah (3-58) broke the stand when he dismissed Conway off the last ball of the 30th over.
Conway hit 13 boundaries and a six off 92 balls, his second hundred in one-day internationals.
His stand with Williamson is a record against Pakistan, beating the 159 set in Wellington by Williamson and Martin Guptill in 2016.
Nawaz then initiated destruction, dismissing Daryl Mitchell (five) and Tom Latham (two) in one over before clean-bowling Williamson in his next.
Williamson, dropped on 53 and 54 off Mohammad Wasim, cracked 10 boundaries from 100 balls.
Glenn Phillips scored three and Michael Bracewell eight, while Mitchell Santner was the last man out for 37.
New Zealand: Kane Williamson (captain), Devon Conway, Finn Allen, Daryl Mitchell, Tom Latham, Glenn Phillips, Michael Bracewell, Mitchell Santner, Ish Sodhi, Tim Southee, Lockie Ferguson
Pakistan: Babar Azam (captain), Fakhar Zaman, Imam-ul-Haq, Mohammad Rizwan, Haris Sohail, Agha Salman, Mohammad Nawaz, Usama Mir, Mohammad Wasim, Naseem Shah, Haris Rauf