The left-arm spinner got Mohammad Ashraful and then accounted for well-set Jahurul Islam and Mohd Mahmudullah off successive balls as Bangladesh reached 158-4 in their second innings at stumps.
The tourists, trailing by 106 on first innings, are now just 52 runs ahead with six wickets in hand. Mominul Haque was unbeaten on 36 with skipper Mushfiqur Rahim seven not out.
The stumble came after Bangladesh made a strong start, with Tamim Iqbal (59) and Jahurul (48) putting on 91 for the opening wicket. Sri Lanka were earlier bowled out for 346 in their first innings in reply to Bangladesh’s 240.
'Look' how the Sheena Bora case has taken a toll on Indrani Mukerjea
Photos: Katrina Kaif, Parineeti Chopra, Shilpa Shetty's movie outing in Juhu
Birthday special: 14 Bollywood actors who made it big on TV
Photos: Vaani Kapoor, Poonam Pandey, Sana Khan at fashion event
Photos: Rishi Kapoor, wife Neetu, daughter Riddhima at book launch