Sri Lanka, who drew the opening Test in Galle, achieved a 160-run target in the last session as opener Tillakaratne Dilshan (57) and Kumar Sangakkara (55) made impressive half-centuries.
Bangladesh, trailing by 106 runs on the first innings, were dismissed for 265 in their second innings in the morning session.
Tamim Iqbal (59), Jahurul Islam (48) and skipper Mushfiqur Rahim (40) were the main scorers for Bangladesh, while Sri Lankan left-arm spinner Rangana Herath finished with a career-best 7-89 on his 35th birthday.
The hosts on Monday were bowled out for 346 in their first innings in reply to Bangladesh's 240.
Bangladesh and Sri Lanka will now play a three-match one-day series, starting in Hambantota on Saturday.
Bangladesh 240 and 265; Sri Lanka 346 and 160-3
Mumbai food: 9 dishes to try during 9 days of Navratri
Photos: Hrithik Roshan, Nidhhi Agerwal and Adah Sharma walk the ramp
Photos: Shah Rukh Khan spotted with new set of wheels
Photos: Kareena Kapoor Khan, Kangana Ranaut at the Mumbai airport
Chris Gayle's journey from bad boy to a loving partner and caring dad