Inspirational Bangladesh captain Mashrafe Bin Mortaza struck with just the third ball of Sri Lanka's innings as he trapped Danushka Gunathilaka in front.
Mehedi Hasan Miraz was then denied an extremely close stumping call in the fourth over, but he came back strongly to remove Kusal Mendis for four in the sixth over after the batsman tried to hit him over the top but could only reach Shuvagata Hom at long-on.
Sri Lanka lost no further wickets and had reached 30 for 2 after 10 overs, but Taskin Ahmed struck off the last ball of the 11th over and reduced the hosts to 31 for 3.
Upul Tharagna swiped at Taskin but picked up a leading edge and the ball floated to Mashrafe.
The Tigers got another breakthrough in the 23rd over, courtesy of ace all-rounder Shakib Al Hasan, as the Lankans looked to be on course to steady the ship. Although the asking rate was far above what they were scoring at, Asela Gunaratne and Dinesh Chandimal had cautiously stitched together a 56 run partnership.
However, Shakib broke that stand with a full ball outside off which Gunaratne reverse-swept. The ball kept a little high and Mosaddek Hossain did well to get his fingers under the ball to send the 31-year-old back to the pavillion.
Mehedi then struck with the second-last ball of the 28th over, his seventh, as Chandimal's attempted sweep took a top-edge and was chipped into the arms of Soumya Sarkar, reducing Sri Lanka to 121 for 5.
Chadimal seemed to be Sri Lanka's last beacon of hope having completed a half-century and looked to be the man to take the hosts towards the formidable target.
Mustafizur Rahman then picked up his first wicket of the match as Milinda Siriwardana was caught off his bowling. Siriwardana had hit the previous ball, the second of the 34th over, for a huge six back over Mustafizur's head, but he was caught at deep midwicket by Hom after attempting another heave to leave the hosts at 153 for 6 with just under 16 overs to go.
Three overs later, it was seven down as Sachith Pathirana's attempted slog off Mashrafe went high into the air and came down into the welcoming palms of Mahmudullah Riyad to reduce the hosts to 171 for seven.
Suranga Lakmal departed not too long after in similar fashion, attempting a big hit off Mustafizur Rahman and lofting it high into the air and back down into the arms of Sabbir Rahman. Sri Lanka were at 208 for 8 with 9.2 overs left to play.
Lakshan Sandakan was next to go, run out after a brilliant throw from quite a distance by Mustafizur Rahman. Sandakan hesitated and that was all the time the ball needed to beat him to the crease. Sri Lanka 232 for nine with six overs to play.
Mustafizur Rahman wrapped up the win, as Thisara Perera was caught by Mahmudullah Riyad while attempting a big hit. Perera had been in a destructive mood, bringing up his half-century in just 28 balls, but it was never going to be enough.
Earlier, Bangladesh had amassed their highest total against Sri Lanka when they reached 324 for 5 after 50 overs during the first ODI of the 3-match series at Rangiri Dambulla International Stadium today.
The 144-run stand between Tamim Iqbal and Shakib Al Hasan for the fourth wicket after the second-wicket partnership of 90 enabled Bangladesh to achieve their highest total in the end. Tamim lifted his team with 127 from 142 balls. Shakib smashed 72 from 71 while Sabbir Rahman chipped in with 54.
For Sri Lanka, Suranga Lakman took 2-45 in eight overs. Lahiru Kumara, Lakshan Sandakan and Asela Gunaratne captured a wicket each.
Bangladesh lost their fifth wicket when Tamim Iqbal was dismissed for 127 to leave the tourists at 289 for 5 in 47.5 overs.
A responsible innings from Tamim comes to an end…wanted to muscle the ball over long-on, but found the fielder. Tamim struck the ball too well for his liking…a well-managed knock from Bangladesh’s opener.
Last bat Tamim Iqbal c Gunathilaka b Kumara 127 (142b 15x4 1x6) SR: 89.43
Fall of wicket 289/5 (47.5 ov); Partnership: 25 runs, 2.0 overs, RR: 12.50 (Tamim Iqbal 19, Mosaddek Hossain 6)
Shakib Al Hasan was the fourth wicket to fall for Bangladesh when he was sent back after scoring a scintillating 72 to leave the tourists at 264 for 4 in 45.5 overs.
The fourth-wicket stand is broken, not before Shakib and Tamim take Tigers to their highest total against Sri Lanka.
Suranga Lakmal gets Shakib…the batter picked out short fine leg while he tried to help the ball over the fielder. The slower delivery from Lakmal didn’t give Shakib enough pace to work with.
Last bat Shakib Al Hasan c Sandakan b Lakmal 72 (71b 4x4 1x6) SR: 101.40
Fall of wicket 264/4 (45.5 ov); Partnership: 144 runs, 23.4 overs, RR: 6.08 (Shakib Al Hasan 72, Tamim Iqbal 66)
Earlier, the fourth wicket partnership between Tamim Iqbal and Shakib Al Hasan of over 100 runs gave Bangladesh the ideal launching pad before the death overs.
Shakib reached his 33rd ODI fifty in the 44th over. In the previous over, Tamim crossed his hundred, and his 8th ton held the Bangladesh innings together. With Shakib having crossed his fifty, both batters would look to step on the gas to push Bangladesh past 300.
Bangladesh were dealt a body blow during the middle overs when Mushfiqur Rahim was sent back after Sabbir Rahman to leave the tourists in a spot of bother at 120 for 3 after 22.1 overs.
Mushfiqur is gone…big wicket in the context of the contest…Bangladesh were on the ascendancy during their 2nd wicket partnership, and the two quick wickets have brought Sri Lanka back into the game.
Appeal for caught-and-bowled, and the replays showed the ball didn’t bounce or hit any part of the ground at any point. Low, dipping full toss on middle and the batter struck it back to the bowler.
Last bat Mushfiqur Rahim c & b Sandakan 1 (2b 0x4 0x6) SR: 50.00
Fall of wicket 120/3 (22.1 ov); Partnership: 1 runs, 0.4 overs, RR: 1.50 (Mushfiqur Rahim 1, Tamim Iqbal 0)
Bangladesh lost their second wicket to a spectacular catch when Sabbir Rahman was dismissed for 54 to leave the tourists at 119 for 2 after 21.3 overs.
A brilliant catch by Upul Tharanga, and the Sabbir-Tamim stand is broken in the 22 nd over. Sabbir smashed the ball through the covers in the air, and Sri Lanka’s stand-in skipper showed superb reflexes to complete the dismissal. Earlier, Sabbir brought up his fourth ODI fifty in the 20th over.
Last bat Sabbir Rahman c Tharanga b Gunaratne 54 (56b 10x4 0x6) SR: 96.42
Fall of wicket 119/2 (21.3 ov); Partnership: 90 runs, 16.5 overs, RR: 5.34 (Tamim Iqbal 28, Sabbir Rahman 54)
The second wicket stand between Sabbir Rahman and Tamim Iqbal gave Bangladesh a solid platform to accelerate as the tourists reached 105 for 1 after 19 overs.
When Bangladesh were 105 for 1 in 19 overs, Sabbir was batting on 48 from 45 and Tamim was 39 not out from 56 balls.
Earlier, Tamim Iqbal and Soumya Sarkar took Bangladesh to 64 for 1 after 10 overs.
When Tigers were 64 for 1, Tamim was batting on 25 from 28 balls and Sabbir was on 24 from 19 balls. Sabbir was watchful to begin with, and after he got his eye in, he began to open his shoulders and brought up Bangladesh’s 50 with three successive fours.
Tamim didn’t look hurried or really troubled during his stay at the crease, and treated his fans to some delightful boundaries on the off side to get things going after Soumya’s departure.
Bangladesh lost their fist wicket after a steady start when Soumya Sarkar was sent back by Suranga Lakmal for 10 to leave the tourists at 29 for 1 after 4.4 overs.
Soumya pays the price for playing across the line…the ball was angled in but fired from wide of the crease, Soumya misread the line and looked to flick it, closed the bat face too early and the leading edge was taken by the keeper.
Last bat Soumya Sarkar c †Chandimal b Lakmal 10 (13b 2x4 0x6) SR: 76.92
Fall of wicket 29/1 (4.4 ov); Partnership: 29 runs, 4.4 overs, RR: 6.21 (Tamim Iqbal 14, Soumya Sarkar 10)
Sri Lanka stand-in skipper Upul Tharanga won the toss and decided to field first.
Sri Lanka begin this ODI series with memories of a first-ever Test loss against Bangladesh fresh in their minds; a loss that prompted a local newspaper to mourn the death of Sri Lanka cricket, Ashes style.
They also start this series without their regular captain Angelo Mathews and their most lethal limited-overs bowler Lasith Malinga, both out with injuries.
"We were bitterly disappointed to lose the last Test match. This is a new series and it's a good opportunity for us to come back strongly," said stand-in skipper Upul Tharanga yesterday. "Even the last series we played, we were beaten by South Africa 5-0. This is an opportunity for us to bounce back."
On the eve of the first match of the three-ODI series starting in Dambulla at 2:30pm (3:00pm Bangladesh time) today, Bangladesh captain Mashrafe Bin Mortaza hinted that here too Bangladesh will have to change the tides of history.
Mashrafe differentiated from Bangladesh's form at home, where most recently they have had a 2-1 win over Afghanistan and a loss by the same margin against England in September-October last year. Since then, Bangladesh have played three ODIs in New Zealand and lost all three.
"The three ODIs pose a big question since we have been playing this format at home for the last two years. We lost all three away ODIs in New Zealand, so it is a different challenge," said Mashrafe at the pre-match press conference at the Rangiri Dambulla International Stadium yesterday.
Tamim Iqbal, Soumya Sarkar, Sabbir Rahman, Mushfiqur Rahim (Wicketkeeper), Shakib Al Hasan, Mahmudullah, Mosaddek Hossain, Mehedi Hasan Miraz, Mashrafe Mortaza (Captain), Taskin Ahmed and Mustafizur Rahman
MD Gunathilaka, WU Tharanga (Captain), BKG Mendis, LD Chandimal (Wicketkeeper), DAS Gunaratne, TAM Siriwardana, SS Pathirana, NLTC Perera, RAS Lakmal, PADLR Sandakan and CBRLS Kumara