The visitors, who resumed on 351/6, were eventually bowled out for 426 shortly after lunch.
Mehidy Hasan Miraz’s determined 65 was crucial in extending Bangladesh’s advantage, while Australia’s Josh Hazlewood finished with 6/89 and reached the 300-wicket milestone in Test cricket.
Bangladesh’s lower order frustrated Australia for more than two hours in the morning session. Mehidy anchored the innings brilliantly, protecting the tail and pushing the lead beyond 200 before Hazlewood finally had him caught behind by Alex Carey for 65.
Hazlewood then completed his 300th Test wicket with Mehidy and added another soon after, dismissing Ebadot Hossain for seven to wrap up Bangladesh’s innings at 426.
Earlier, Hasan Mahmud was trapped lbw by Hazlewood for 14, adding just one to his overnight score. Taijul Islam made a brisk 17 before becoming Hazlewood’s 299th victim when he edged a delivery to Cameron Green at gully.
Australia’s fielding offered Bangladesh further assistance. Steven Smith dropped a straightforward chance off Taskin Ahmed, while Travis Head later put down a tougher opportunity off Mehidy.
Chasing the deficit, Australia lost both openers to Hasan Mahmud. Jake Weatherald was bowled for a duck before Travis Head chopped on for 17, leaving the hosts 37/2.
Hasan, who claimed a career-best 6/55 in Australia’s first innings, again troubled the Australian top order and finished the day with 2/33.
Taijul Islam then removed Marnus Labuschagne for 31 before Mehidy Hasan Miraz produced the key breakthrough of Steve Smith, who was caught and bowled for 44.
Cameron Green, unbeaten on 43, and Alex Carey, not out on 19, steadied Australia with an unbeaten partnership to take the hosts to 161/4 at stumps.
Australia still trail by 67 runs, with Bangladesh firmly in control heading into the fourth day.
The visitors are seeking their first-ever Test victory in Australia, having never won Down Under in their previous two attempts.