Usman Khawaja top-scored with 174 as the hosts declared on 556-4, before the Kiwis faltered from 102-1 to 157-5.
Johnson removed experienced duo Brendon McCullum and Ross Taylor cheaply to leave the visitors trailing by 399.
Earlier, New Zealand pace bowler Tim Southee was forced off the field with an irritated disc in his back.
With the tourists still needing 200 more to avoid the follow-on, they face a mammoth task to avoid heading to Perth trailing in the three-Test series, but their hopes of staving off defeat may well rest with Kane Williamson.
While the tourists' middle order crumbled around him, the 25-year-old withstood the pace barrage to finish the day in good touch on 55 not out.
With patchy cloud cover appearing over the Gabba midway through the final session, left-armers Starc and Johnson started to find movement through the air and off the Brisbane pitch.
Both captain McCullum and Taylor went edging balls angled away from off stump before Jimmy Neesham was bowled by a precise yorker from Starc.
By contrast, Australia's middle order held steady with skipper Steve Smith (48) and Adam Voges (83 not out) lending useful support to Khawaja.
The declaration came immediately after Khawaja, who began on 102 after making his maiden Test century on the opening day, was caught off Williamson's part-time off-spin.
Southee's injury has forced New Zealand to call up left-arm seamer Neil Wagner as precautionary cover for next week's second Test.
Listen to ball-by-ball commentary of every day of the Test series on BBC Radio 5 live sports extra from 23:30 GMT. Play starts at 00:00 GMT.
Australia tightened their grip on the first Test as Mitchell Johnson and Mitchell Starc's pace tore into New Zealand on day two in Brisbane.