Colombo — Shakib Al Hasan scored his fifth Test hundred and was part of two big partnerships to put Bangladesh in command of the second Test, leading Sri Lanka by 75 runs at stumps on the third day on Friday.
Bangladesh was bowled out for 467 in their first innings, securing a 129-run first innings lead over Sri Lanka, whose first innings score was 338.
Shakib faced 159 deliveries for his 116, including 10 boundaries. He shared 92 for the sixth wicket with captain Mushfiqur Rahim (52) to steady Bangladesh from a vulnerable position.
Then he combined for a 131-run partnership for the seventh wicket with Mossadek Hossain, who made a half-century on debut and was out last for a well-made 75.
Hossain faced 155 deliveries and hit seven boundaries and two sixes.
Sri Lanka's openers started their second innings positively and made 54 without loss in the 13 overs they faced. Dimuth Karunaratne and Upul Tharanga remained not out with 25 runs each.
Bangladesh resumed the third day at 214-5, having to rebuild the innings after a midway stutter. Having reached 192-2 they lost three wickets close to stumps Thursday to be vulnerable on 198-5.
But Shakib and Rahim did well to rotate the strike and scored boundaries off loose balls to quickly free themselves from pressure.
Rahim eventually departed for 52, at 290-6, bowled by a sharp inswinger from fast bowler Suranga Lakmal two overs after the new ball was taken. He faced 81 deliveries and hit six boundaries.
Shakib was out in the middle session trying to force left-arm wrist spinner Lakshan Sandakan and being caught by Dinesh Chandimal.
Captain Rangana Herath and left-arm wrist spinner Sandakan took four wickets each for Sri Lanka.
Saumya Sarkar and Tamim Iqbal gave Bangladesh a good start with a 95-run opening stand on Thursday.
Sarkar made 61 off 121 balls hitting six boundaries. Iqbal was dismissed for 49 having earlier survived two close lbw appeals.
Sandakan later took two wickets in successive balls and Lakmal took a wicket in the next over to leave Bangladesh 198-5.
Sri Lanka lead the two-match series after winning the first Test by 259 runs last week.