Trent Boult grabbed three late wickets after Neil Wagner collected his 100th Test victim to put New Zealand firmly in control of the first match against Pakistan at the close of the third day's play on Saturday.
The visitors were reduced to 129 for seven in their second innings, a lead of 62 runs, with Asad Shafiq on six and Sohail Khan on 22 at Hagley Oval in Christchurch.
Until the last 45 minutes on play, the visitors had taken the day's honours by inching into the lead and setting themselves up to build on Sunday.
Boult, however, took the catch to dismiss Pakistan captain Misbah-ul-Haq (13) then got the wickets of Azhar Ali (31), Sarfraz Ahmed (2) and Mohammad Amir (6), giving his side the chance to finish off the test on Sunday and take a 1-0 lead in the two-match series.
The 30-year-old Wagner had earlier become the second fastest New Zealander to the 100-wicket mark, achieving it in his 26th Test. Richard Hadlee, the country's most prolific wicket taker with 431, took 25 Tests to reach 100.
Pakistan's seamers had dragged their side back into the game when they captured seven wickets in the first session to bowl the hosts out for 200.
Sohail (3-78), Rahat Ali (4-62) and Amir (3-43) shared the wickets after the hosts had resumed on 104 for three only to be bundled out with just a 67-run lead.
Pakistan were content to slowly chip away at the deficit, losing opener Sami Aslam for seven just after lunch.
Azhar and Babar Azam continued to grind away until well into the final session before Wagner's short-pitched tactics paid off when Babar gloved a ball down the leg side to wicketkeeper BJ Watling to become the left armer's 100th test wicket.
Wagner then captured the prolific Younus Khan (1) with a perfect bouncer that he was unable to avoid and the ball flew through to Watling to leave Pakistan in trouble at 64 for three.
Azhar, who scored a triple century against West Indies in Dubai last month, guided Pakistan into the lead when he deflected Wagner past gully for a boundary before he and Misbah looked to consolidate.
Misbah, however, was caught in the deep by Boult off Tim Southee for 13, before the left armer took three wickets in three successive overs.