Shehzad smashed a 120-ball 113 spiced with a dozen boundaries and two sixes — his sixth one-day hundred — while Afridi gave the final touches as Pakistan took full advantage of winning the toss to post the highest total at Sharjah stadium.
The 23-year-old Shehzad, who has scored hundreds in all three formats this year, built invaluable partnerships right from the beginning after giving Pakistan a brisk start of 63 with Mohammad Hafeez who made a 26-ball 33 with five fours and a six.
Shehzad added another 70 for the second wicket with Younis Khan (35) and 77 for the third with Asad Shafiq (33).
His innings helped Pakistan overcome the loss of regular skipper Misbah-ul Haq, ruled out of the remaining three matches due to a hamstring injury sustained in the second match.
Shehzad finally holed out in the 37th over as paceman Matt Henry also removed Shafiq on the very next ball.
Stand-in skipper Afridi and Haris Sohail (28-ball 39) ensured Pakistan did not lose track of a big total with an 89-run stand for the fifth wicket off just 45 balls.
Sohail hit five boundaries and a six.
Afridi’s whirlwind 25-ball knock had six boundaries and three sixes as Pakistan collected 125 in the last ten overs.
Sarfraz Ahmed whipped in with 30 not out off 14 balls.
Ironically, New Zealand had scored the highest total of 338-4 at this ground against Bangladesh in 1990.
Pakistan brought in Umar Akmal for injured Misbah while New Zealand made three changes from the line-up which won the second match, also in Sharjah by four wickets.
Daniel Vettori, Dean Brownlie and Adam Milne made way for Martin Guptill, Jimmy Neesham and Nathan McCullum.
The series is currently tied at 1-1. Pakistan won the first match by three wickets in Dubai.