This was the first Test victory against Australia for the hosts and with this result Bangladesh have now taken a 1-0 lead in the two match series.
From 158 for 2, Australia slipped to 199 for 8. Lower-order batsmen Pat Cummins (33 not out) and Nathan Lyon (12) then tried to stabilise the innings but Taijul Islam removed Lyon to seal the issue.
Australia entered the fourth day needing 156 runs with eight wickets in hand. Australia’s captain Steven Smith and David Warner added 130 but left-arm spinner Shakib Al Hasan dismissed both the batsmen and their middle-order failed to rise the occasion.
Man of the Match Shakib took ten wickets and also scored 84 runs in the first innings.
Earlier, Bangladesh scored 260 runs in the first innings with Tamim Iqbal (71) and Shakib scoring handsomely for the hosts.
Then, the Bangladesh bowlers did a brilliant job to dismiss Australia for 217. Shakib took five wickets while Mehidy Hasan scalped three wickets.
In the second innings Bangladesh scored 221, setting a target of 264, which Australia failed to chase and lost the match by 20 runs.