(CNN) -- Spin pair Ajantha Mendis and Muttiah Muralitharan snapped up seven wickets between them in Chittagong where Sri Lanka took control of the second Test against Bangladesh.
Mortaza followed up his three-wicket haul with his third Test half-century to give Bangladesh a boost.
The tourists ended the second day with an overall advantage of 189 runs after closing at 13 without loss after Bangladesh were all out 208.
Sri Lanka's grip would have been stronger still but for a fighting last-wicket stand of 63 between Mashrafe Mortaza (63) and Shahadat Hossain (five not out).
Muralitharan finally finished things off by having Mortaza caught at deep square leg by Tillakaratne Dilshan to end with three for 62 while Mendis returned foru for 71.
Already 1-0 up in the two-match series, Sri Lanka resumed on 371 for six, but had their tail wrapped up with four lbw decisions for the addition of just 13 runs.
Chamara Kapugedera (96) was the first to go in the second over having added only three to his score after he fell lbw to a Shakib delivery that kept low.
Mortaza took his third wicket with the next ball when Chaminda Vaas (three) was hit on the pad in line with leg stump before Shakib Al Hasan dismissed Muralitharan for a duck in similar fashion to Kapugedera.
Shakib, who finished with figures of four for 109, ended the innings on 384 when he trapped Dilhara Fernando in front with another one that kept low.
Bangladesh struggled from the start when Vaas had Tamim Iqbal caught behind without scoring in the first over and then trapped Imrul Kayes leg before.
It was all downhill from there until Mortaza's third Test half-century gave the home total some respectability.