Kumar Sangakkara continued his awesome batting form in Bangladesh as Sri Lanka won the second One-Day International 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 dismissed openers Kusal Perera and Tillakaratne Dilshan by the eighth over, before Sohag Gazi accounted for 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.
K Perera c Shamsur b Rubel 8
T Dilshan c Rahim b Rubel 8
K Sangakkara c Mahmudullah b Sunny 128
D Chandimal c Shamsur b Gazi 9
A Priyanjan lbw b Shakib 60
A Mathews not out 56
T Perera c Mahmudullah b Rubel 0
K Vithanage not out 13
Extras: (LB-3, W-4) 7
Total: (for six wickets in 50 overs) 289
Fall of wickets: 1-9, 2-38, 3-63, 4-177, 5-260, 6-262.
Bowling: Mortaza 8-0-52-0, Rubel 10-0-76-3, Gazi 10-0-50-1, Shakib 10-1-46-1, Sunny 8-1-44-1, Mahmudullah 3-0-11-0, Mominul 1-0-7-0.
Anamul Haque lbw b T. Perera 42
Shamsur Rahman c Senanayake b Malinga 0
Mominul Haque c Sangakkara b Senanayake 15
Mushfiqur Rahim c Senanayake b Malinga 79
Shakib Al Hasan c Senanayake b Priyanjan 24
Nasir Hossain c Vithanage b Mendis 22
Mohammad Mahmudullah run out 1
Sohag Gazi c Sangakkara b T. Perera 7
Mashrafe Mortaza c T. Perera b Mendis 17
Arafat Sunny not out 1
Rubel Hossain c sub (A. Perera) b Senanayake 6
Extras: (B-3, LB-3, W-7, NB-1) 14
Total: (all out in 43 overs) 228
Fall of wickets: 1-2, 2-57, 3-63, 4-116, 5-153, 6-155, 7-170, 8-217, 9-220, 10-228.
Bowling: Malinga 8-2-45-2, Mathews 8-1-44-0, Senanayake 8-0-33-2, T.Perera 6-0-40-2, Mendis 8-0-43-2, Priyanjan 5-0-17-1.
Image: Kumar Sangakkara
Photograph: Francois Nel/Getty Images