Maiden centuries by Shamsur Rahman and Imrul Kayes took Bangladesh past the follow-on mark, but late strikes from the spinners put Sri Lanka in the driving seat in the second and final Test in Chittagong yesterday.
Bangladesh, needing victory to level the series, reached 409 for eight wickets in their first innings at stumps on the third day, still trailing the visitors by 178 runs.
Mahmudullah (30) and Al-Amin Hossain (three) remain at the crease for the hosts.
Resuming at 86 for one wicket, opener Shamsur (106) and No. 3 Kayes (115) batted through the first session to launch a gritty reply from Bangladesh, who had been battered by a triple-century by Kumar Sangakkara in Sri Lanka’s first innings.
The 25-year-old Shamsur, in his second Test, got to his century first with a boundary through cover off Sri Lanka captain Angelo Mathews.
Kayes, 27, playing his first Test for more than two years, survived some nervous moments in the nineties before cutting paceman Suranga Lakmal to the point boundary to complete his century.
Kithuruwan Vithanage, at point, first dropped an easy catch off Ajantha Mendis with the left-hander on 95 and then gleefully accepted another later in the over, only to find out that the bowler had overstepped for a no-ball.
Both Shamsur and Kayes played casual shots to gift their wickets to Mendis after a 232-run partnership.
Off-spinner Dilruwan Perera then dismissed Mominul Haque (13) for the first of his three wickets as Bangladesh wobbled at 259 for four.
The innings was stabilized by a 60-run stand for the fifth wicket between all-rounder Shakib Al Hasan (50) and captain Mushfiqur Rahim (20), before both were dismissed by Perera with Bangladesh still shy of the follow-on mark at 350 for six.
Nasir Hossain (42) added a vital 46 runs with Mahmudullah to take Bangladesh past the follow-on figure of 387, but edged Mendis to Dinesh Chandimal behind the stumps with just more than three overs left in the day.