Farveez Maharoof (72) tallied his maiden half-century and Thilan Samaraweera made his 11th with an unbeaten 57 to advance Sri Lanka from 199 for five at tea.
Malinga Bandara was not out with eight when the umpires called play closed for the day.
Bangladesh spinners were on top in the second session with Enamul Haque capturing a pair of wickets, including that of Kumar Sangakkara, while Mohammad Rafique removed Mahela Jayawardene.
Maharoof played 133 balls, hitting 10 fours and a six before being bowled by Shahadat Hossin.
Sangakkara (69) was caught by Mohammad Ashraful off Haque, who also trapped Tillakaratne Dilshan on 22. Jayawardene was caught by Shahadat Hossain on 30.
Sri Lanka lost opener Michael Vandort for naught when he was caught behind by keeper Khaled Mashud off fast bowler Syed Rasel on only the third ball of the first over.
Upul Tharanga was then caught by Mohammad Ashraful off Mohammad Rafique at 42.
Bangladesh had ended their innings all out for 319, adding only four runs to their overnight score of 315.