Kusal Mendis fell four short of a maiden Test double-century on his 23rd birthday, as Sri Lanka finished day three on 504/3.
It was another day for the bowlers to forget at the Zahur Ahmed Chowdhury Stadium, as Kusal Mendis (196), Dhananjaya de Silva (173) and Roshen Silva (87*) helped Sri Lanka amass 504/3 by stumps, putting them nine runs behind Bangladesh's first-innings score.
The visitors will look to score quick runs on day four to open up a lead and hope their bowlers can then exert some pressure on Bangladesh. But it won't be easy on a featherbed pitch which so far has offered very little pace or spin.
Starting day three on 187/1, with Dhananjaya having reached three figures the previous evening, he and Mendis set about chipping away at Bangladesh's lead. Dhananjaya was the main aggressor, bringing up his 150 from 187 balls shortly before lunch, while Mendis was happy to play second-fiddle, reaching his fourth Test century from 200 deliveries.
Bangladesh's bowlers had nothing to show for their toil in the morning session, going wicketless until the second-wicket partnership of 308 was finally broken early in the second session. It was the new ball that did the trick, as Mustafizur Rahman angled a back-of-a-length delivery across Dhananjaya, who attempted a pull shot but only succeeded in top-edging through to Liton Das behind the stumps.
If the hosts thought that wicket would open the floodgates, they were to be sorely disappointed. Mendis was relentless, celebrating his 23rd birthday by moving past 150, and he found a willing partner in Roshen. The 29-year-old right-hander had impressed on debut against India last December, hitting 74 not out, and he picked up where he left off, playing some lovely strokes to keep the scoreboard ticking over.
Mendis looked well set for a maiden Test double-century, with a previous highest score of 194 against the same opposition in Galle last May, but he fell just short once again, this time four runs away from the landmark. With just two overs to go before the tea break, Mendis advanced down the wicket and tried to flick the left-arm spinner Taijul Islam through the leg-side but only succeeded in offering a chance to Mushfiqur Rahim at mid-on, who took an excellent diving catch.
The final session provided no further rewards for Bangladesh, as Roshen moved through to a well-compiled half-century and Dinesh Chandimal (37*) offered stable support, the pair extending their partnership to 89.