Jonny Bairstow, who started the day on 97, got his fifth test century before losing overnight partner Jack Leach and then being last man out himself, spearing a catch to third man off Trent Boult at 101 off 170 balls.
Tim Southee dismissed Leach to finish with six for 62, his third best test figures and seventh bag of five or more wickets, and Boult took four for 87.
Openers Tom Latham and Jeet Raval didn't last, Latham pushing out at Broad's third ball to edge a catch to the wicketkeeper for 0.
Raval was repeatedly beaten outside his off stump by Anderson before England's leading test wicket taker got his man, also caught by wicketkeeper Bairstow.
Ross Taylor drove loosely at a Broad ball which flew hard to first slip and 17 for three got worse in Broad's next over when he had Henry Nicholls lbw for a duck, after going for a DRS referral.
Captain Kane Williamson had battled to 18 off 41 balls, with one big scare when he survived a DRS for lbw from Anderson which looked more out than not. Wicketkeeper BJ Watling was on seven.
England felt New Zealand's bowling class at Eden Park; this morning it was New Zealand's turn to cop it.
Broad had taken three for 18 and Anderson one for nine at lunch.
To get the day's top sports stories in your inbox, sign up to our newsletter here