Thisara Perera was in the middle at the end of both victories which retained for Sri Lanka the No. 1 ranking in T20s.
Perera and Sachitra Senanayeke held their nerve in the last over to score the required nine runs for Sri Lanka to win by three wickets, 123-7 after bowling out Bangladesh for 120 with a ball to spare.
On Wednesday, Perera caught and bowled Anamul Haque off the last ball when Bangladesh needed two runs to win.
Perera added 46 with Kumar Sangakkara after Bangladesh had Sri Lanka at 50-6, raising the prospect of its first victory against the islanders.
Also Read
In his 50th T20, Sangakkara hit a patient 37 to be the highest scorer in the match.
Rubel Hossain dismissed Sangakkara with three overs to go, but Perera and Senenayeke denied the hosts. Mashrafe Bin Mortaza took 2-29 while Mahmudullah, Arafat Sunny, Shakib Al Hasan and Rubel Hossain picked up one wicket each.
Malinga confused Bangladesh with pace, slow balls and bouncers, and was backed up by Nuwan Kulasekara and Sachitra Senanayeke who ended with two wickets apiece.
For Bangladesh, debutant Sabbir Rahman was the top scorer with 26. Haque made 24, including 20 in an over off Tillakaratne Dilshan, and Bin Mortaza 17.
Sri Lanka's catching was also stunning. Nuwan Kulasekara sprinted 20 metres from mid-on to take a catch at long-on to dismiss Shakib Al Hasan on 12, and Senanayake also benefited as the bowler when Haque's shot to the deep mid-wicket was intercepted by a diving Kusal Perera, for an overhead catch to his right.