The New Zealand captain, playing his 101st and final Test, reached his 12th Test century from just 54 balls as he and Corey Anderson bludgeoned the visitors' attack in a scintillating 75 minutes after lunch at Hagley Oval. More news on Brendon McCullum
McCullum was dismissed for 145 when Nathan Lyon took a good catch in the deep to end a 179-run partnership with Anderson, who reached his fourth Test half-century from 39 balls and was dismissed for 72 shortly before tea.
Wicketkeeper BJ Watling was six at the break with Tim Southee on five. Until the fifth-wicket pairing's attack on a good-paced pitch that was drying out in brilliant sunshine, Australia had been well in control, having reduced the hosts to 74 for four with Kane Williamson's dismissal for seven after lunch.
Williamson had batted stoically in the morning as he tried to rebuild New Zealand's innings under the pressure of superb pace bowling.
But he faced only five deliveries after the break before Australia captain Steve Smith took his second brilliant catch of the innings to give all-rounder Mitchell Marsh his first wicket.
McCullum was also brilliantly caught when on 39 with Marsh's one-handed effort in the gully, but television replays showed fast bowler James Pattinson had overstepped the mark and the captain was reprieved.
The 34-year-old then went into all-out attack mode, reaching his century 24 balls later with his 16th boundary. McCullum needed two fewer balls than the 56 that West Indies' Viv Richards needed against England in Antigua in 1986 and Pakistan's Misbah-ul-Haq took against Australia in Abu Dhabi in 2014.
He also hit four sixes in his first 100 runs, his first before lunch securing outright ownership of the record for career sixes in test cricket. He had started the day tied with Adam Gilchrist on 100 career sixes.
Martin Guptill (18), Tom Latham (four) and Henry Nicholls (seven) all fell before lunch with Pattinson, Josh Hazlewood and Jackson Bird grabbing a wicket each. Australia hold a 1-0 lead in the two-match series after an innings and 52 run victory in the first game in Wellington.
The New Zealand captain, playing his 101st and final Test, reached his 12th Test century from just 54 balls as he and Corey Anderson bludgeoned the visitors' attack in a scintillating 75 minutes after lunch at Hagley Oval.
More news on Brendon McCullum