The Lankan young middle-order batter Janith Liyanage scored an unbeaten century to guide Sri Lanka to 235 all out in 50 overs in the third and final one-day international in Chattogram on Monday.
Liyanage staged a lone battle en route to his maiden century after Bangladesh made regular strikes, with Taskin Ahmed leading the way for the home side with 3-42.
Lankan captain Kusal Mendis (29) and Charith Asalanka (37) made a start, but their wickets tumbled before they could hit out high.
Sri Lanka won the toss and elected to bat first, only to lose both openers inside four overs.
Taskin struck early, trapping in-form opener Pathum Nissanka leg-before for one, then dismissing other opener Avishka Fernando for four in his next over.
Mustafizur Rahman, playing his first match in the series, removed Sadeera Samarawickrama off his first ball for 14, to leave Sri Lanka reeling at 41-3.
Leg-spinner Rishad Hossain made Mendis his first ODI wicket, also off his first ball of the game.
Mustafizur ended Asalanka's counter-attacking innings, before Mehidy Hasan Miraz claimed two back-to-back wickets to expose the tail.
But Liyanage held one end firm to ensure Sri Lanka batted out 50 overs, hitting Taskin over the cover for a four in the final over to reach his century off 101 balls.
Mustafizur and Mehidy claimed 2-39 and 2-38, respectively.
The series is tied 1-1 after Bangladesh won the opener by six wickets, with Sri Lanka taking the second by three wickets on Friday.
Bd-pratidin English/Lutful Hoque