Sri Lanka got off to a bad start as they lost crucial wickets when Al-Amin Hossain struck first to dismiss Kusal Perera and Kumar Sangakkara in quick succession.
Hossain first had Perera (0) caught behind by Anamul Haque on the second ball of the innings before scalping Sangakkara (2) in the third over to jolt Sri Lanka in the best possible manner.
Sri Lanka’s miseries were further deepened when Mahela Jayawardene (0) was run out after a horrible mix-up between him and Lahiru Thirimanne.
Thirimanne and Ashan Priyanjan then tried to revive the Lankan chase when the duo put up a determined 39-run partnership; however, Ziaur Rahman cut the glory short when he had Priyanjan (24) caught behind by Anamul Haque.
Soon after, Arafat Sunny rubbed more salt on the Sri Lankan wounds when he dismissed Thirimanne (33) to leave Sri Lanka struggling at 79/5 after 24 overs.
Skipper Mathews and Chathuranga de Silva then waged a battle by putting up a gritty 82-run partnership for 6th wicket thereby keeping Sri Lanka in the contest.
However, Mahmudullah proved instrumental in breaking that stand when he dismissed De Silva (44). Mathews carried on to reach his 19th ODI half-century with the help of 4 boundaries and a single six to leave the match evenly poised.
Earlier, Bangladesh frittered away a solid start as Sri Lankan spinners triggered a middle- order collapse to restrict the hosts to 204 for nine.
Rookie off-spinner Ashan Priyanjan grabbed 2/11 from his three overs after Ajantha Mendis gave the breakthrough with two wickets in six balls. The result was that Bangladesh never had a partnership going, after the openers had put on 74 runs.
Continuing his brilliant form, Anamul Haque, who struck a century in their record 326 against Pakistan, top-scored with 49 after Bangladesh opted to bat. The opener hit one six and two fours en route to his 86-ball knock, before falling to Priyanjan.
In the next over, Priyanjan took the prized scalp of Shakib-al-Hasan (20), and the pace duo of Suranga Lakmal (2/32) and Thisara Perera (2/29) tightened the noose around the Bangladeshi batsmen in the death overs.
Bangladesh had a solid start with Anamul and Shamsur Rahman going along smoothly against Sri Lanka’s new ball bowlers Suranga Lakmal and Thisara Perera on a pitch that stayed low and had uneven bounce.
The duo scored mainly in boundaries and put on 74 runs before a dubious lbw decision by Bruce Oxenford gave Mendis the first breakthrough in Rahman.
There was a double blow for Bangladesh as Mendis took another wicket in the same over, when he castled Mominul Haque with a low ball.
Bangladesh struggled for a partnership in the middle with Chaturanga de Silva trapping in-form skipper Mushfiqur Rahim for four.
In pursuit of their first win in the ongoing tournament, the hosts made three changes to the playing XI in the last league match.
Bangladesh omitted Shafiul Islam, Abdur Razzak and Imrul Kayes for Rubel Hossain, Arafat Sunny and Rahman.
Opener Imrul Kayes, who made a fifty in the last match, was unavailable due to injury.
Lanka rested Lasith Malinga and brought in Sachithra Senanayake while Dinesh Chandimal gave way to Priyanjan.
The match has rendered inconsequential as Sri Lanka and Pakistan have already qualified for the final, which will be held on Saturday.