Stumps Bangladesh 76 for 0 (Tamim 35*, Mahmudul 31*) trail Sri Lanka 397 (Mathews 199, Chandimal 66, Nayeem 6-105, Shakib 3-60) by 321 runs
Angelo Mathews' marathon innings in the oppressive May heat of Chattogram led Sri Lanka to a competitive total, but it was heartbreak for him as he was dismissed on 199, the 12th batter to record the score in the history of Test cricket. Sri Lanka put up 397, having started the day on 258 for 4, and Bangladesh responded well, Tamim Iqbal and Mahmudul Hasan Joy scoring 76 runs in 19 overs to finish the second day with the deficit down to 321 runs.
Before Tamim (35*) and Mahmudul (31*) controlled the last hour-and-some of the day, Chattogram boy Nayeem Hasan returned career-best Test figures of 6 for 105 to keep Sri Lanka in check. He took early wickets on both days, but his big strike was Mathews, the last Sri Lankan wicket to fall. It was the last ball of the 153rd over, and Mathews, who faced 397 balls across two days, played a tired-looking hoick towards midwicket, where Shakib Al Hasan took an easy catch.
Mathews threw his head back in disappointment as he trudged off, even as the Bangladesh fielders rushed to congratulate him for his big effort.
Despite failing to get to what would have been his second Test double-century, Mathews' was a massive effort. His 199 was one more than what the rest of the batters - including extras - combined to score. But more than just the runs, he kept Sri Lanka's fight going for over nine hours in scorching heat. He managed to get them out of tricky periods on the first day, and then battled through a batting collapse on the second morning when they lost four wickets for nine runs in 3.3 overs.
Mathews, however, had a lucky escape early on the second morning when he edged Khaled Ahmed in the fourth over. But neither the bowler nor the wicketkeeper or any of the close-in fielders seemed to have noticed the noise, which was later picked up by the broadcasters. He was on 119 at the time.
Sri Lanka went swimmingly thereafter, with Mathews hitting a couple of fours, while Dinesh Chandimal struck the ball well through the covers and down the ground. But less than 20 minutes before lunch, Chandimal fell for 66, the second-highest score of the innings, when he missed an attempted reverse sweep off Nayeem. Nayeem removed Niroshan Dickwella in the same over, with a delivery that went straight on from around the wicket.
Shakib then struck with two wickets in the first over after lunch. First, Ramesh Mendis missed a pull to be bowled by a low arm-ball, and then Lasith Embuldeniya missed a straight one from around the wicket.
At 328 for 8, the end seemed around the corner, but Mathews added 47 runs for the ninth wicket with Vishwa Fernando, who stayed in the middle for 84 balls for his unbeaten 17. Vishwa struck three fours, before Mushfiqur Rahim dropped him off Shakib shortly before the tea break. In the next over, Shoriful Islam struck him on the top of his helmet with a bouncer, which forced him to retire hurt
Shakib fumbled a throw with Asitha Fernando well short of the non-striker's end in the first over after tea, but Asitha fell eight overs later with Mathews on 192. Vishwa returned, and though Mathews found a boundary - his 19th, to go with one six - the milestone eluded him.
Tamim edged Asith to Kusal Mendis at second slip in the second over of the Bangladesh innings, but the fielder dropped the chance. It wouldn't have counted anyway, as it was a no-ball. But it was a testing period for the openers, as Mahmudul, too, survived a couple of iffy moments. But they stuck it out, getting Bangladesh to safety during a period of the match in which they struggled so much in South Africa last month.
Mohammad Isam is ESPNcricinfo's Bangladesh correspondent. @isam84