The 38-year-old allrounder picked up 4-14 in four overs to cap a series of dominating performances by the World Cup runners-up who had mauled Bangladesh by a 3-0 margin in the Test series as well.
Sri Lanka, who were bowled out for 196 after being sent in to bat, hit back to send Bangladesh crashing for 157 in a match reduced to 40-overs-a-side due to a wet outfield.
Teenage left-handed opener Tamim Iqbal provided a brief resistance for Bangladesh with a 74-ball 54, but the rest of the batsmen wilted under pressure.
Jehan Mubarak, who was named man of the match, had earlier boosted Sri Lanka's total with a career-best 72 off 82 balls that included six boundaries.
"We have played excellent cricket through the last few months and the results show that," said Sri Lankan captain Mahela Jayawardene.
"Bangladesh improved their bowling with each match but the batsmen need to bat longer to put up big scores."
Bangladesh paid the price for a sloppy display in the field which saw them floor four catches and miss at least three run-out chances.
The visitors still managed to bowl out the Sri Lankans for the first time on the tour, but any hopes they might have nursed of salvaging pride were dashed when they lost five wickets with just 69 runs on the board.
Javed Omar was dismissed in the very first over, caught by Jayawardene at second slip off Farveez Maharoof.
Maharoof claimed another wicket in his next over, sending back Mushfiqur Rahim for a duck.
The Bangladesh innings was briefly resurrected with a 60-run partnership for the sixth wicket between Iqbal and debutant Mohammad Mahmudullah (36).
The 18-year-old Iqbal had also shared a 42-run partnership with skipper Mohammad Ashraful (20).
"As in the previous games, our bowlers did well but the batsmen failed," said Ashraful. "Sri Lanka were just too strong for us."
Earlier, Bangladesh bowlers managed to strike at regular intervals before bowling Sri Lanka out with one ball to spare.
The 26-year-old Mubarak lifted the team from a shaky 61-4 with a valuable 78-run stand for the fifth wicket with Tillakratne Dilshan (39).
Mahmudullah chipped in with two wickets, including that of Upul Chandana who was caught brilliantly by Iqbal near the boundary, the only bright spot in an otherwise disappointing display by the visitors.