Bangladesh ended day one of the second Test against Sri Lanka 56/4 after Kusal Mendis and Roshen Silva half-centuries helped the visitors post 222.
Abdur Razzak made a dream comeback to the Test arena after four years returning career-best figures 4/63.
The visitors struck back, led by Suranga Lakmal, with four top-order wickets to wrest the advantage away from Bangladesh.
Sri Lanka opted to bat first after winning the toss on a raging turner, a response to the lifeless pitch in Chittagong.
Mehedi Hasan and Razzak opened the bowling for Bangladesh, with Mustafizur Rahman only coming into the attack in the 12th over after the third spinner, Taijul Islam, had been given a go.
By then Razzak had dismissed Dimuth Karunaratne, having him stumped after coming down the pitch on three.
Mendis looked solid at one end after opening the innings, but Razzak was irresistible.
After Islam had sent Dhananjaya de Silva packing, Razzak got his second and third in rapid succession, first bagging Danushka Gunathilaka who slapped one to Mushfiqur Rahim at mid-off and then, next ball, getting one to loop and drift through Dinesh Chandimal’s defences to castle the Sri Lanka skipper.
Sri Lanka's game plan was to attack the Tiger's bowling rather than wait for a ball with their name on it, and the gamble paid off reaching lunch at 105/4.
Mendis (64) had been joined in the middle by Roshen and the pair looked reasonably comfortable.
In the first over after the break though, Razzak was at it again, beating Mendis with dip to bowl the opener for 68 after he had pulled the first ball after the lunch for four.
Silva took charge of the innings following Mendis’s dismissal, and after Niroshan Dickwella had become Islam’s second victim, forged a 52-run partnership with Dilruwan Perera for the seventh wicket.
Rahman was brought back into the attack for only his fourth over – the 42nd of the innings – and could have got his first scalp had Sabbir Rahman managed to hold on to a simple chance at second slip.
The scoreboard read 143/6 at that stage and before Perera could make Bangladesh pay for the lapse Islam had his man, caught off bat and pad at silly point by Mominul Haque for 31.
Akila Dananjaya, the debutant, scored a quick 20 but Rahman had him and Rangana Herath out in quick succession on his way to returns of 2/17.
That left Bangladesh with only one wicket to get, and Islam got one to grip, turn and bounce to go off Silva’s gloves to Das behind the stumps, the batsman falling for 56, off 124 balls with three fours and a six. Islam finished with figures of 4/83 while Rahman chipped in with two wickets.
Sri Lanka came out in their defence of 222 with all guns blazing. Lakmal got rid of Tamim Iqbal (4) off just the fourth ball of the innings, with the opener spooning a return catch to the bowler.
Haque, fresh from a century in each innings of the previous Test, was run-out in the very next over, although he had only himself to blame. Kayes, having played a crunching drive to mid-off set off for a regulation single. Haque, not expecting the throw to be at his end, lumbered for the run, and merely plonked his bat into the crease, rather than grounding it in. Dickwella, the Sri Lankan ‘keeper, whipped off the bails to send the batsman on his way for a duck.
Mushfiqur hung around for a rather fortuitous 22-ball 1, but his luck finally ran out when he shouldered arms to Lakmal only to see his off-stump splattered. At the time, Bangladesh were 12/3, but Kayes and Das staged a brief revival with a 33-run partnership for the fourth wicket. However, late in the day, the former was trapped in front for 19 off Perera, and Sri Lanka walked back in the happier side.