Kumar Sangakkara continued his awesome batting form in Bangladesh as Sri Lanka won the second one-dayer by 61 runs in Dhaka on Thursday to take an unassailable 2-0 lead in the three-match series.
The left-hander, who scored 319 and 105 in the second Test earlier this month after making 75 in the first Test, hit a fluent 128 off 115 balls to lift Sri Lanka to 289-6.
Bangladesh, facing a must-win situation after losing the first match, caved in under pressure and were dismissed for 228 with seven overs to spare at the Sher-e-Bangla stadium.
Skipper 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 grabbed wickets at regular intervals.
Lasith Malinga, Sachithra Senanayake, Thisara Perera and Ajantha Mendis picked up two wickets each, while part-timer Ashan Priyanjan took one.
The series win sealed Sri Lanka's domination during the month-long tour where they won the two-Test series 1-0 and secured both the Twenty20 matches. The final one-dayer will be played on Saturday.
It was just the boost Angelo Mathews' men needed ahead of the five-nation Asia Cup one-day tournament which opens in Bangladesh on Tuesday.
Priyanjan (60) helped Sangakkara put on 114 for the fourth wicket after the tourists, who elected to bat, were reduced to 63-3 by the 13th over.
Mathews lifted the total with an unbeaten 56 off 39 balls, having added 83 for the fifth wicket with Sangakkara.
Bangladesh seamer Rubel Hossain removed openers Kusal Perera and Tillakaratne Dilshan by the eighth over, before Sohag Gazi dismissed Dinesh Chandimal to open up the middle order.
Priyanjan, a 24-year-old right-hander playing his fourth one-dayer, hit seven boundaries before he was trapped leg-before by left-arm spinner Shakib Al Hasan.
Sangakkara reached his 17th one-day century with a four through the covers off Rubel and celebrated the landmark by dabbing the next ball to third man for another boundary.
Sangakkara slammed 14 boundaries before he was caught in the deep in the 47th over attempting another big shot off Arafat Sunny.
The tourists brought in spinner Mendis in place of the injured Nuwan Kulasekara, while Bangladesh dropped Al-Amin Hossain to play experienced seamer Mashrafe Mortaza.