The hosts, who needed a win to prevent Bangladesh from recording its first away series win since 2009, were put in to bat at the Sinhalese Sports Club Ground here in what was the first ODI at the venue in more than six years.
The home team rode on half-centuries from Kusal Mendis (54 off 76 balls) and Thisara Perera (52 off 40 balls) to post 280/9 before medium pacer Nuwan Kulasekara returned figures of 4/37, and Suranga Lakmal and Seekkuge Prasanna picked up two wickets each to bowl Bangladesh out for 210 in 44.3 overs, according to an International Cricket Council (ICC) release.
Bangladesh's chase got off to a poor start as Tamim Iqbal, Sabbir Rahman and Mushfiqur Rahim fell within the first 3.3 overs. The onus was then on Soumya Sarkar and Shakib Al Hasan to steer the innings.
They put on 77 runs before Sarkar fell, beaten by Dilruwan Perera's drift to be stumped for 38, which included three fours and a six. Prasanna bowled Mosaddek Hossain, but the biggest blow came in the 24th over, when Shakib was bowled by Dilruwan.
Shakib had given himself room off the first ball of the over and struck the ball well only to see Danushka Gunathilaka make a diving stop inside the circle on the offside. Shakib tried to lift the next ball over Gunathilaka, but couldn't clear the man, with the Sri Lankan pulling off a very good catch to send Shakib back for 54. He was looking in fine nick, having hit seven fours in his 62-ball knock.
After that, Lakmal had Mahmudullah caught behind. Then Mehedi Hasan added 28 runs with Mashrafe Mortaza, who had taken three wickets, and 54 runs with Taskin Ahmed for the eighth and ninth wickets respectively, but that only delayed the inevitable.
Mehedi showed good composure and scored most of his runs with orthodox shots, but was not hesitant to innovate when the opportunity presented. He became the third Bangladesh batsman to score a half-century in his first ODI innings before falling for 51 when he tried to loft a slower full toss from Kulasekara over cover in the 45th over.
Kulasekara then had Taskin caught in the outfield a ball later to give Sri Lanka their series-levelling win.
Brief Scores: Sri Lanka: 280/9 in 50 overs (Kusal Mendis 54, Thisara Perara 52, Upul Tharanga 35, Mashrafe Mortaza 3/65, Mustafizur Rahman 2/55) beat Bangladesh: 210 in 44.3 overs (Shakib Al Hasan 54, Mehedi Hasan Miraz 51, Nuwan Kulasekara 4/37, Suranga Lakmal 2/38, Dilruwan Perara 2/47) by 70 runs.
Sri Lanka outplay Bangladesh to level ODI series
South Africa reclaims No.1 ODI Ranking after more than two years
New Zealand registered thrilling victory over Australia in first ODI
Pakistan may not qualify for 2019 World Cup, Virat kohli slips in ranking
Steve Smith ruled out of New Zealand tour due to ankle injury
Disciplined England record five-run consolation win over India
Good win in tough conditions for England Chris Woakes
India vs England: 3rd ODI Scoreboard
Mahendra Singh Dhoni's family, relatives expected to be present during Eden ODI
Pakistan hopes security company meeting will help in West Indies tour