Bangladesh bagged two back to back wickets after lunch.
Taskin Ahmed, who's been in terrific form, bowled Pathum Nissanka first and Miraz followed him soon after.
Oshada Fernando was the next man to go thanks to great anticipation by Liton Das from behind the stumps.
Sri Lanka are 388 for 6 after 138 overs.
Taskin has been the pick of the bowlers with 3 wickets while Shoriful, Taijul, Miraz picked up a wicket each.
Bangladesh bowlers own the first session of second day
Bangladesh came back strongly from a forgetful first day of the second Test and owned the first session of second day's play in Kandy.
They conceded 43 runs in 26 overs and bagged three wickets in the session.
Probably one of their most impressive with the ball away from home in Tests.
Taskin Ahmed was the pick of the bowlers with two wickets to his name, Taijul picked the other.
Oshada Fernando is not out on 65 while his partner Pathum Nissanka is yet to get off the mark.
Bangladesh will be looking to continue their dominance in the coming session and see how the wicket behaves as the day progresses.
Taskin's brace before lunch giving hopes
Soon after finally picking up his first wicket in the match, Taskin struck again and sent back Angelo Mathews back to the pavilion.
He set up Mathews nicely for the wicket and was successful eventually.
Taskin's fiery spell giving hopes to Bangladesh bowlers that they can bag some more wickets on this ultimate batting pitch.
Bangladesh kept Sri Lanka's run-scoring in check since morning. Sri Lanka managed to score 33 runs in 20 overs for the loss of 2 wickets in the session so far.
Mathews bagged 5 before departing.
Dhananjaya de Silva is the new batter in the middle.
Taskin provides much-needed breakthrough in the first session
Taskin deserved a bit of luck after the way he bowled and saw catches being dropped off his delivery, and he finally got some reward.
Shortish and down the leg side. Lahiru Thirimann looked to tuck it off his hip, and ended up sending a little feather to the keeper.
He was dismissed for 140.
Oshada Fernando not out on 53 joined by Angelo Mathews in the middle. Sri Lanka are 317/2 after 105 overs.
Taskin bowled 23 overs for his first wicket.
There is hardly anything for the bowlers on the pitch and seems like another long fielding day is waiting for Bangladesh.