Josh Hazlewood completed career-best figures of 6-70 as Australia bowled out New Zealand in the first session of the third day.
Australia needed 187 for victory but had to suffer some nervy moments as Trent Boult took five wickets. However, Shaun Marsh’s 49 took the hosts to the brink of victory and Peter Siddle saw them over the line.
Boult trapped Joe Burns lbw before Doug Bracewell was denied the scalp of Australia captain Steven Smith, then on two, when Mitchell Santner somehow failed to take a catch running back from midwicket.
It did not prove too costly, though, as Bracewell removed David Warner in his next over, with Smith following for 14 seven deliveries later having been pinned in front by Boult.
Adam Voges and Marsh put on 49 for the fourth wicket before Boult ousted Voges, which brought out Mitchell Marsh to join his brother.
Mitchell Marsh added 28 in 29 deliveries before top-edging a Santner delivery to Kane Williamson running back from mid on, then Shaun Marsh nicked Boult behind one run short of a fifth Test half-century.
Australia were 11 runs away from victory but they lost another wicket before getting across the line as Peter Nevill edged behind to become Boult’s fifth scalp.
But Siddle knocked off the remaining two runs required at the end of a nervy 51st over to secure victory.
Earlier, New Zealand failed to add to their overnight 116 for five when BJ Watling edged Hazlewood to Smith at second slip.
Hazlewood struck again to complete the first five-wicket haul with the pink ball, this time combining with wicketkeeper Nevill to remove Mark Craig for 15.
Santner (45) and Bracewell went on the attack, both hitting sixes, before the former was stumped two balls after his maximum when charging down to Nathan Lyon looking to reach a maiden Test fifty.
Bracewell ended unbeaten on 27 as he saw Tim Southee fall to Mitchell Marsh and then Boult become Hazlewood’s sixth victim, leaving New Zealand all out for 208 which proved too few to prevent an Australian win.