Sri Lanka all-out for 280 after debutant Rana triggers collapse
Rana, who was taken apart earlier in the day, redeemed himself as he got rid of de Silva (102) shortly after the Kamindu dismissal, but not before the Sri Lanka captain notched up his 11th Test ton.
Bangladesh lost the momentum after Dhananjaya de Silva and Kamindu Mendis forged a monumental partnership of 202 but debutant Nahid Rana's pace came in handy as Sri Lanka were bundled out for 280 despite looking set for a much bigger total at one stage.
Sri Lanka collapsed from 259-5 to 280 all-out in the third session. Rana and Khaled Ahmed picked up three wickets each.
Bangladesh fast bowlers were all over Sri Lanka in the morning session after captain Najmul Hossain Shanto won the toss and decided to field first. It was the first time since 2015 that Bangladesh asked the opponent to bat first in a home Test.
The host fast bowlers breathed fire in the first one and a half hour, reducing Sri Lanka to 57-5. But Kamindu and de Silva counterattacked to put pressure back on Bangladesh.
Kamindu struck three classy boundaries off Khaled Ahmed, the pick of the bowlers, early in the second session to get going.
An elegant strokemaker, Kamindu drove the ball delightfully through the off side and was not afraid to take the aerial route as well.
Both Kamindu and de Silva both notched up their fifties at strike-rates close to 100.
The pacers went for runs in the second session and although the spinners - Mehidy Hasan Miraz and Taijul Islam - stemmed the run flow, Sri Lanka went at 4.6 runs an over in the second session.
Kamindu (102) brought up his maiden Test hundred with a splendid square drive off Nahid Rana but the young speedster had the last laugh as some extra bounce did the trick for him.
Rana, who was taken apart earlier in the day, redeemed himself as he got rid of de Silva (102) shortly after the Kamindu dismissal, but not before the Sri Lanka captain notched up his 11th Test ton.
The paceman snared Prabath Jayasuriya and then Sri Lanka soon folded for 280.
Earlier, it was the local lad Khaled Ahmed who drew first blood as he got rid of Nishan Madushka (two) in his first over. Mehidy Hasan Miraz took an absolute blinder at third slip.
Kusal Mendis (16) and Dimuth Karunaratne added 37 for the second wicket before the former's indecision led to his downfall.
Khaled hit the pitch hard with a short delivery which was quite wide and Mendis wasn't sure whether to leave it or have a go and in the process glided the ball straight to Zakir Hasan at gully.
Karunaratne (17) departed in the same over as a gem of a delivery tailing in from Khaled saw him cleaned up.
Sri Lanka soon found themselves at 47-4 when Shanto threw the ball directly at the stumps Angelo Mathews (five) was short of his crease while trying to seal a single.
Shoriful Islam joined the party in the 17th over as Dinesh Chandimal (nine) glanced the ball straight to leg slip. Miraz stood there for exactly that shot and the ball shaped back in, prompting the shot from the Lankan veteran.