Dilruwan Perera finished with five wickets as Sri Lanka dismissed Bangladesh for 250 in their second innings to wrap up a huge win in the first Test in Dhaka.
Starting the penultimate day on 35 for one and still trailing Sri Lanka's massive first-innings total by 463 runs, Bangladesh were bowled out midway through the afternoon session as the tourists claimed victory by an innings and 248 runs.
The second and final Test gets under way on February 4 in Chittagong.
A Sri Lanka win always seemed inevitable after they ran up 730 for six declared in reply to Bangladesh's 232 on the opening day, and although several home batsmen got starts in their second innings, no one was able to significantly delay the defeat.
Mominul Haque, with exactly 50, was the only player to reach a half-century, with Nasir Hossain (29), Shakib Al Hasan (25), Sohag Gazi (23) and Marshall Ayub (18) all sticking around for a while without managing to unduly trouble the Sri Lankans.
There was also an entertaining last-wicket stand of 53 in 6.2 overs between Rubel Hossain (17) and number 11 Al-Amin Hossain, who struck four sixes in his unbeaten 32 off only 18 balls, but those fireworks - and the match - came to an end when Perera had the former caught behind.
That wicket left Perera with figures of five for 109 in the innings, while Suranga Lakmal snared three for 39 as Sri Lanka romped home with over a day to spare.