Bangladesh paceman Taskin Ahmed took three wickets for 119 on day two of the second Test against Sri Lanka Friday as the hosts piled up 469 runs for six at stumps.
The 26-year-old had an impressive morning spell where his four overs cost just seven runs and produced two wickets.
He removed centurion Lahiru Thirimanne for 140 runs and Angelo Mathews (five) in quick succession.
After lunch, Taskin bowled Pathum Nissanka with a delivery that kept low and in the very next over, left-arm spinner Taijul Islam dismissed Oshada Fernando who was on 81.
From 382 for six, Ramesh Mendis and Niroshan Dickwella added 87 runs for the seventh wicket.
Taskin was denied a fourth wicket when Najmul Shanto put down Ramesh Mendis at second slip.
Playing just his seventh Test, Taskin generated good pace and troubled the right-handed batsmen by swinging the ball away from them.
After conceding 291 runs for a solitary wicket on day one, Sri Lanka found it tougher on Friday, scoring only 43 runs in 26 overs in the morning session while losing three wickets.
Dickwella played a key role in the final stand, bringing up his half-century in just 48 balls. He was on 64 at stumps while Mendis was 22 not out.
Play was suspended for 24 minutes after tea due to bad light and although the players were back on the field, only 6.5 overs were possible before the day ended. Twenty five overs were lost in all.
The first Test ended in a tame draw with ICC Match Referee Ranjan Madugalle giving the pitch a below average rating and a demerit point.