Asitha Fernando claimed six wickets and registered his first 10-wicket haul as Sri Lanka crushed Bangladesh by 10 wickets in the second Test to win the series 1-0.
This happened after the host team collapsed from 156-5 to 169 all out in its second innings on Friday.
Sri Lanka easily reached the target on the fifth and final day to finish 29-0 in three overs with Oshada Fernando hitting 21 off only nine balls. Captain Dimuth Karunaratne was unbeaten on 7 not out.
Fast bowler Asitha who took a six-wicket haul in the second innings achieved a magnificent feat of resgistering a 10-fer after scalping four in the first innings.
Resuming the day on 34-4 and still needing 107 runs to make Sri Lanka bat again, Bangladesh lost Mushfiqur Rahim (23) in the eighth over of the day when Kasun Rajitha (2-40) bowled him with a delivery that kept low.
Allrounder Shakib, who took 5-96 in the first innings, counterattacked to keep the scoreboard ticking.
Liton, after scoring 88 runs in the drawn first test and a career-best 141 in the first innings of this test, went slowly but smoothly to deny Sri Lanka bowlers' quest for another wicket.
The wicketkeeper-batter pushed left-arm spinner Praveen Jayawickrama through cover for a single to bring up 2,000 runs in his 33rd test.
Shakib reached his 27th half-century off 62 balls, whipping a delivery from off-spinner Dhananjaya de Silva through midwicket for a boundary on the stroke of lunch.
But soon after reaching his 13th fifty off 130 balls, Liton gave a return catch to Fernando and it sparked the collapse.
Bangladesh's hopes of saving the test took a big hit when Shakib edged a delivery from Fernando to wicketkeeper Niroshan Dickwella after hitting seven fours in his 72-ball knock.
Fernando then cleaned up the tail to give Sri Lanka a small target to chase.
Bangladesh chose to bat first and scored 365 in the first innings. Sri Lanka took control of the test and series after replying with 506.