Angelo Mathews and Dhananjaya de Silva scored half-centuries as Sri Lanka ploughed ahead on a rain-hit day three, getting to within 83 runs of Bangladesh's total, with five wickets still in hand.
The visitors lost three wickets, including that of captain Dimuth Karunaratne for 80, but are now perhaps better-placed than Bangladesh to push for a result in the match.
With 39 overs having been lost to rain on Wednesday, though, another draw may beckon. The whole second session was washed out.
Bangladesh’s day had begun with promise when Ebadot Hossain bowled nightwatchman Kasun Rajitha with the second ball of the morning, but despite some excellent spells from Shakib Al Hasan, Taijul Islam, and Ebadot himself, the hosts were frustrated by Sri Lanka’s application.
Shakib deservedly emerged with the best figures by stumps, with 3 for 59 from his 26 overs. Ebadot had 2 for 78 and went at an even three per over. Taijul kept things tight, maintaining an economy rate of 2.25 across his 28 overs in the innings so far, but not claiming a wicket.
Sri Lanka’s most-productive partnership was the 102-run stand between Mathews and de Silva, who brought contrasting approaches to their innings.
Mathews was sedate, venturing only two boundaries in the 76 balls he faced before lunch, before eventually plodding to 58 off 153 by stumps. He left many, defended even more, and subsisted off singles for large portions of his innings, hitting only five boundaries. The most exciting moment of his knock came when he launched Shakib over long off for six to reach his 38th Test fifty.
De Silva was more ambitious during his 58 off 95, though he also rode his luck more than Mathews. He whipped Khaled Ahmed for four through square leg second ball and continued to look proactively for runs, getting to 30 off 40 before rains forced the umpires to call lunch five balls early.
During that early period, he had under-edged a ball close to his stumps as well. He slowed down a touch after the downpour, but was nevertheless keen to punish errors of length. Shakib got him out roughly midway through the final session, with a turning ball that took a faint edge en route to the wicketkeeper. Bangladesh had to win that out decision with a review.
After de Silva left, Dinesh Chandimal forged a sedate partnership with Mathews. They saw out 55 balls together, but made only 16, though they did have the waning light to contend with.