Kumar Sangakkara's rich vein of form continued on Thursday as Sri Lanka won their second one-day international against Bangladesh by 61 runs.
The left-hander, who struck 319 and 105 in the second Test earlier this month after making 75 in the first Test, hit a languid 128 from 115 balls to elevate Sri Lanka to 289-6.
Bangladesh, facing a must-win situation after losing the first match, were unable to cope under pressure and were dismissed for 228 with seven overs to spare at the Sher-e-Bangla stadium, as Sri Lanka took an unassailable 2-0 series lead.
Bangladesh captain Mushfiqur Rahim top-scored with 79 off 83 balls and opener Anamul Haque made 42, but none of the other batsmen settled in as Sri Lanka snatched wickets at regular intervals.
Lasith Malinga, Sachithra Senanayake, Thisara Perera and Ajantha Mendis picked up two wickets each, while part-time bowler Ashan Priyanjan added one.
Sri Lanka's one-day series victory underlines their dominance of the month-long tour, having won the two-Test series and Twenty20 matches.
The visitors made a slovenly start as Kusal Perera and Tillekaratne Dilshan both fell to the bowling of Rubel Hossain for just eight.
Dinesh Chandimal soon joined the openers in the dressing room, offering a simple catch at short midwicket off the bowling of Sohag Gazi.
It could have got worse for Sri Lanka but for Hossain dropping Priyanjan, before he and Sangakkara rescued the visitors from 63-3 in the 13th over after they elected to bat first.
Priyanjan helped Sangakkara put on 114 for the fourth wicket, before the former was trapped lbw by Shakib Al Hasan for 60.
Sangakkara went on to reach his 17th one-day century with a four through the covers off Rubel and went on to register 14 boundaries before he was caught in the deep in the 47th over attempting another big shot off Arafat Sunny.
Angelo Mathews lifted Sri Lanka's total to an above-par 289 with an unbeaten 56 off 39 balls, having added 83 for the fifth wicket with Sangakkara.
In reply, the hosts got off to the worst possible start, as Shamsur Rahman dabbed at a wide one to be caught at second slip in the first over.
Anamul Haque and Mominul Haque added 55 runs for the second wicket before that partnership ended when Mominul was brilliantly caught behind by Sangakkara.
Anamul attacked Malinga during his 46-ball 42, but his innings ended when he was lbw to an incoming delivery from Thisara Perera in the 14th over.
Mushfiqur Rahim and Al Hasan lacked composure and swung at everything within their reach before the latter holed out to Ashan Priyanjan's off-spin, caught at long-off.
Mushfiqur then called for a single, but sent Mahmudullah back halfway through his run; he was easily run out at the bowler's end.
Nasir Hossain hung around for a while before being caught out at deep square-leg, ending Bangladesh's hopes at 153 for 5.
Mushfiqur moved to 79 but there was no one left at the other end for a proper tilt at the chase as they lost their final five wickets for only 75 runs.