Steve Smith and Shaun Marsh came to Australia's rescue, steering the hosts to 165-4 at stumps, after England threatened to take control of the opening Ashes Test in Brisbane on Friday.
England were bowled out for 302 before lunch on day two, having lost six wickets for 106 runs in the morning session, and that seemed to be a sub-par score on an improving pitch at the sunbathed Gabba.
But the Ashes holders showed that their total might be better than first thought, as England's bowlers tore through star opener David Warner (26), Usman Khawaja (11), debutant Cameron Bancroft (5) and Peter Handscomb (14).
Jake Ball (1-35) had the Barmy Army in full voice with the prized scalp of Warner, after Stuart Broad (1-18) and Moeen Ali (1-50) dismissed Bancroft and local favourite Khawaja respectively to silence the Australian crowd.
It got worse for Australia in the first over after tea when James Anderson (1-26) trapped Handscomb lbw following a successful review as the home team slumped to 76-4.
The calming influence of Smith (64 not out), however, en route to his 22nd Test half-century and the determination of Marsh (44 not out) - a player desperate to repay the faith shown in him following an eighth recall - steadied the ship to guide Australia to within 137 runs of England at the close of play.
Earlier in the day, Mitchell Starc (3-77) - who left the field with a suspected cut knee in a nervy moment for the hosts - celebrated his 150th Test wicket as Australia recovered from a lacklustre start to end England's innings.
Resuming at 196-4, England looked comfortable with Dawid Malan and Moeen in the middle against a frustrated bowling attack lacking pace and intensity, but the visitors lost their way in the morning session.
A centurion in England's final warm-up match, Malan (56) was the first wicket to fall after adding 28 runs to his overnight score to bring up his third Test half-century, top-edging Starc's delivery to Marsh at backward square leg.
That dismissal triggered a collapse, as in-form spinner Nathan Lyon (2-78) pounced, backing up his pre-Ashes war of words by trapping Moeen (38) lbw the over after Malan fell, before Chris Woakes became his next victim for a duck.
Wicketkeeper Tim Paine gobbled a routine catch after Jonny Bairstow (9) sent a Pat Cummins (3-85) delivery straight up in the air and the onslaught continued when Warner produced a stunning diving catch to send Ball (14) back to the pavilion off Starc.
Marsh dropped Broad on 10 as Australia went in search of the final wicket, with lunch delayed, but Josh Hazlewood (1-57) eventually got the number nine, who departed after a battling 20.