Kumar Sangakkara continued his awesome batting form on the current Bangladesh tour by smashing a century as Sri Lanka piled up 289-6 in the second one-day international in Dhaka on Thursday.
The seasoned left-hander, who scored 319 and 105 in the second Test earlier this month after making 75 in the first Test, flayed the Bangladesh bowling once more with a fluent 128 off 115 balls.
Ashan Priyanjan helped Sangakkara put on 114 for the fourth wicket after the tourists, who elected to bat after winning the toss, were reduced to 63-3 by the 13th over.
Skipper Angelo Mathews boosted the total with an unbeaten 56 off 39 balls, having added 83 for the fifth wicket with Sangakkara.
Bangladesh need a win to level the three-match series after Sri Lanka won the opening match by 13 runs on Monday.
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 in his 60 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 Ajantha Mendis in place of the injured Nuwan Kulasekara, while Bangladesh dropped Al-Amin Hossain to play experienced seamer Mashrafe Mortaza.
Sri Lanka had won both the preceding Test and Twenty20 series.