Angelo Mathews remained unbeaten on 147 as Sri Lanka reached lunch at 327-6 on day two of the second Test Monday after Bangladesh spinner Nayeem Hasan struck twice in one over.
Sri Lanka began the day at 258-4 with Mathews on 114. He and Dinesh Chandimal, who made 66, extended their fifth-wicket partnership to 136 when Nayeem made the breakthrough.
In the 24th over of the session, Chandimal attempted a pre-meditated reverse sweep but failed to make contact and was given out lbw, upheld on review.
Nayeem celebrated his third wicket of the innings and soon had a fourth when he bowled wicketkeeper-batsman Niroshan Dickwella, who made only three, four balls later.
Ramesh Mendis (1) was batting with Mathews at the break.
Bangladesh missed a chance to dismiss Mathews on 119 in the fourth over of the day.
Khaled Ahmed the Sri Lankan with an outswinger but there was no appeal for a catch behind, despite technology suggesting Mathews had edged the ball.
Mathews has hit 18 fours and a six while Nayeem has bowling figures of 4-87.