Australia could not add to their overnight score as Lyon fell for a duck and were all out for 377, claiming a handy first innings lead of 72 runs.
The off-spinner then claimed 3-30, and his second 10-wicket haul, to help reduce Bangladesh to 83 for five by lunch on the fourth day.
Sabbir Rahman was on 20, having overturned a lbw decision, with skipper Mushfiqur Rahim on 16 at the other end with Bangladesh leading by 11 runs.
Earlier, pace bowler Mustafizur Rahman (4-84) dismissed Lyon in the second over before Bangladesh's top order let them down at the Zahur Ahmed Chowdhury Stadium.
Lyon, who had claimed 7-94 in the first innings, then seized the game by the scruff of the neck.
Tamim Iqbal came dancing down the wicket but was beaten by the turn and bounce and while the ball hit Matthew Wade in the chest, the wicketkeeper managed to collect it and whip the bails off to dismiss Tamim for 12.
Left-arm spinner Steve O'Keefe dismissed Nasir Hossain for five in identical manner and by the time Bangladesh had erased the deficit, the top half of their batting order was sitting in the dressing room.
Bangladesh won the series opener, their first test win over Australia, in Dhaka by 20 runs.