Angelo Mathews (87) and Kusal Mendis (54) hit fifties for the hosts while Dimuth Karunaratne (46), Kusal Perera (42) and Dasun Shanaka (30) also contributed with the bat.
For Bangladesh, Shafiul Islam and Soumya Sarkar scalped three wickets each conceding 68 and 56 respectively.
Earlier, the hosts won the toss and opted to bat first aiming to win for one final time to register a clean-sweep over the Tigers.
They lost the first wicket when Shafiul Islam trapped Avishka Fernando for six.
However, the Lankans added 83 runs in the second wicket stand with the help of captain Dimuth Karunaratne and wicketkeeper batsman Kusal Perera.
The partnership was broken by Taijul Islam at 96 removing Karunaratne. Within two more runs, Rubel Hossain removed Perera as well.
At the end of 40 overs, Sri Lanka were 188 for three. In the last 10 overs, they added 106 runs losing five more wickets.
Bangladesh made two changes in their playing XI in this match replacing Mosaddek Hossain and Mustafiuzr Rahman with Anamul Haque Bijoy and Rubel Hossain.