The tourists, who resumed at their overnight score of 72-4, lost their last six wickets for 33 runs as off-spinner Muralitharan and seamer Sujeewa De Silva ran through the lower order.
Heavy rain soon after Bangladesh's innings ended delayed Sri Lanka's reply, further disrupting a Test in which only 29 overs were bowled on the first day.
Sri Lanka are seeking a 3-0 sweep of the ongoing series after winning the first two Tests in Colombo by innings margins.
Muralitharan's 59th haul of five wickets or more in an innings took his career tally to 694, leaving him just 14 away from equalling Australian Shane Warne's world record of 708 wickets.
Muralitharan, who still has one more innings against Bangladesh in this match to increase his tally, hopes to overtake the retired Warne when Sri Lanka play two Tests in Australia in November.
When play began 30 minutes late due to a wet outfield caused by overnight rain, Bangladesh added 26 runs when De Silva forced Tushar Imran to edge a catch to Sri Lankan captain Mahela Jayawardene at first slip.
Imran, who was flown in for the final Test to bolster the batting, made 17 in a fifth-wicket stand of 34 with his captain Mohammad Ashraful.
Ashraful, who made a century in the previous Test, hit 26 with the help of three exquisite boundaries when he drove wildly at De Silva and edged a simple catch to wicket-keeper Prasanna Jayawardene.
Muralitharan, who had taken two wickets on the first day, earned his third wicket in the innings with a brilliant return catch to dismiss Mashrafe Mortaza that reduced Bangladesh to 118-7.
As Mortaza jabbed the ball high to short cover, the 35-year-old Muralitharan ran to his left and dived full-length, picking up the catch with his outstretched left hand inches off the ground.
Muralitharan took another return catch, this one a simple skier running to his left, to remove Mohammad Rafique and claim 100 Test wickets in his home city from 15 matches.
The wily bowler had the last two batsmen, Shahadat Hossain and Syed Rasel, caught close to the wicket to leave Mushfiqur Rahim unbeaten on 11.
Bangladesh Ist innings 131 (Shahriar Nafees 29, Mohd Ashraful 26; Muralitharan 6 for 28, Sajeewa de Silva 2 for 29) Vs Sri Lanka.