Mehidy Hasan Miraz's four-wicket haul, coupled with wicketkeeper Mushfiqur Rahim's 84, helped Bangladesh beat Sri Lanka by 33 runs. Sri Lanka were all out for 224 in reply to Bangladesh's 257/6.
Miraz dismissed Sri Lanka openers Danushka Gunathilaka and captain Kusal Perera within the first eight overs. Miraz then dismissed Dhananjaya de Silva and Ashen Bandara to leave Sri Lanka on 106/2.
Sri Lanka were given some hope by Wanindu Hasaranga, who put up 47 runs for the seventh wicket with Dasun Shanaka and 62 runs for the eighth with Isuru Udana but the target turned out to be too big for Sri Lanka to chase.
Earlier, Bangladesh were buoyed by a 109-run partnership for the fifth wicket between Rahim and captain Mahmudullah, who scored 54.
Brief scores: Bangladesh 257/6 in 50 overs (Mushfiqur Rahim 84, Mahmudullah 54; Dhananjaya de Silva 3/45) beat Sri Lanka 224 all out (Wanindu Hasaranga 74, Kusal Perera 30; Mehidy Hasan Miraz 4/30) by 33 runs