Smith called correctly at the toss, made New Zealand bat on a green wicket and within two sessions the innings was over for 183.
Australia at stumps were 147-3, 36 behind New Zealand, with Smith making 71. Usman Khawaja was not out 57 with Adam Voges on seven.
Voges was bowled by Doug Bracewell in the final over of the day only for umpire Richard Illingworth to call it a no-ball. Replays indicated it was a legitimate delivery.
Their cause was helped by some injudicious shot selection, including by McCullum, who saw his 100th Test celebrations fall flat when he was out for a duck.
More From This Section
He did not get forward far enough to a Hazlewood special that came back, took an inside edge and deflected off the pads to David Warner at third slip.
After McCullum had received a rousing ovation when he walked to the middle, there was silence when he walked off after facing seven deliveries.
New Zealand were reeling at 51 for five in the 12th over before a determined knock by Corey Anderson, who with BJ Watling went about stopping the tumble of wickets.
Anderson then featured in a 10-over stand with Mark Craig that produced 40 runs and Craig, who had a Mitchell Marsh delivery hit his stumps but not dislodge the bails, put on 46 with Trent Boult for the 10th wicket.
New Zealand had a glimmer of hope that their cause was not lost at the start of the Australian innings when Tim Southee snapped up two early wickets.
Joe Burns went in the first over without scoring and David Warner followed soon after for five.
But Smith and Usman Khawaja then took control and proved the pitch was playable as they put on 126 for the third wicket.
Smith offered a chance on 18 but was dropped by Craig at second slip. Craig, however, made no mistake with the second offering from the Australian captain taking a return catch off his own bowling.