Suranga Lakmal, Dilruwan Perera, Seekkuge Prasanna all chipped in with two wickets each helping the home side to successfully defend 9-280 at the Sinhalese Sports Club ground.
Kulasekara claimed 4-37 as the visitors were bowled out for 215 runs in 44.3 overs, avoiding their first series loss to Bangladesh.
Shakib Al Hasan remained the top scorer with 54 runs while Mehedi Hasan hit 51 – his maiden ODI fifty.
Put into bat first by Bangladesh captain Mashrafe Mortaza earlier, Kusal Mendis top-scored with 54 and Thisara Perera added 52 off 40 balls to give Sri Lanka a competitive score.
Bangladesh went onto the back foot soon after they started their chase losing their first three wickets for just 11 runs.
Kulasekara, who was not part of Sri Lanka team in their 90-run loss in the opening match, led the way for home side striking twice in his first two overs.
Lakmal put Bangladesh in dire straits when he hit Mushfiqur Rahim on the back foot for an lbw – the first ball he faced.
Shakib and Soumya Sarkar (38) rebuilt the inning with a 77-run stand for the fourth wicket but Dilruwan put Sri Lanka back in control removing both batsmen.
The game ended as a contest when Shakib drove Perera straight to Danushka Gunathilaka at cover to leave Bangladesh 118-6.
Bangladesh earlier did a commendable job in the field to restrict the home side to less than 300 runs despite an initial hammering by openers Gunathilaka and Upul Thranga.
“We lost the match in the first 10 overs, both with the bat and ball. 280 was definitely chaseable,” Bangladesh skipper Mortaza said after the match.
Spinner Mehedi Hasan broke their 76-run stand as Gunathilaka gave a catch to Mahmudullah after making 34 runs off 38 balls.
Taskin Ahmed beat Tharanga with pace to bowl the Sri Lanka captain out for 35 runs, putting a brake finally on their run-rate.
Mendis, who scored a century in the abandoned second match, tried to rebuild the innings with former captain Dinesh Chandimal, but two successive run outs hurt them again.
Chandimal was run out for 21 when Mushfiqur Rahim collected a Taskin throw from deep point to break the stump.
Mushfiqur did a smart job once again to run out Milinda Siriwardana for 12 before he took a catch off Mustafizur Rahman to end Mendis’ defiant innings.
With Bangladesh making regular breakthroughs, Perera launched a counter attack to race to his second half-century in the series before he fell to Mortaza in the final overs.
The two teams will now play two Twenty20 internationals, on April 4 and 6, in Colombo. (Courtesy AFP)