Bangladesh, trailing by 106 runs, were 23 for no loss in their second innings at lunch on the third day of the second and final Test against Sri Lanka in Colombo on Monday.
Tamim Iqbal was unbeaten on 13 at the break with Jahurul Islam on nine not out.
Sri Lanka were earlier bowled out for 346 in their first innings in reply to Bangladesh's 240. They lost their remaining four wickets for 52 runs in 18.3 overs after resuming at 294-6.
Off-spinner Sohag Gazi finished with 3-111 off 39 overs, while pacemen Abul Hasan, Robiul Islam and Rubel Hossain each took two wickets.
Abul got a big wicket in the seventh over of the morning session when he removed a well-set Kumar Sangakkara (139), adjudged caught behind by the TV umpire after adding 12 runs to his overnight score of 127.
Sangakkara, who scored a century in each innings of the drawn first Test in Galle, cracked 11 fours in his third successive hundred, and the 33rd of his career.
Gazi then got two wickets as he bowled Rangana Herath for three and had Nuwan Kulasekara (22) caught by wicket-keeper Mushfiqur Rahim, who took his fifth catch of the innings.
Spinner Mohammad Mahmudullah ended the innings when he had Shaminda Eranga (15) caught by Mohammad Ashraful at long-on boundary.