Fast bowler Lahiru Kumara claimed four wickets for 50 runs as Sri Lanka swept the two-test series against Bangladesh with a 192-run victory in the second match on Wednesday.
Sri Lanka won the first test by 328 runs and with the series sweep maintained its record of not losing a test in Bangladesh.
It won the earlier three-match T20 series 2-1 before losing the ODI series by same margin.
Resuming Day 5 at 268-7 and needing 243 runs for an unlikely victory, Bangladesh was bowled out for 318 with Mehidy Hasan Miraz staying unbeaten on 81.
Occasional bowler Kamindu Mendis, who took 3-32, got the breakthrough for the visitors in the fourth over of the day when he dismissed Taijul Islam, caught by Nishan Madushka at gully.
But Mehidy raised his sixth test 50 off 62 balls, hitting Kamindu for a boundary. He batted aggressively to raise the prospect of his only second century but Hasan Mahmud and Syed Khaled Ahmed failed to give him support.
Both of the batters were dismissed by Kumara, leaving Mehidy 19 runs short of his century. He played 110 balls for his 81, including 14 fours.
Sri Lanka posted 531 in its first innings with six batters getting past half-century marks, making it the highest total without any batters scoring a century.
It then dismissed Bangladesh for 178 runs, and took a 353-run lead but the visitors decided against the follow-on. Dspite a batting collapse in the second innings, Sri Lanka was able to leave Bangladesh a record chase of 511 after declaring on 157-7.