The 24-year-old Asalanka, who has played just eight ODIs and four T20Is before Sunday’s match, held the Sri Lanka innings together, hitting five fours and as many sixes in his entertaining unbeaten knock.
Coming in the 10th over, the 30-year-old Rajapaksa smashed three fours and as many sixes in his 31-ball innings as Sri Lanka reached 172 for 5 in 18.5 overs.
However Bangladesh would certainly be disappointed with their shoddy outfielding as Litton Das dropped regulation catches of both Rajapaksa and Asalanka denying his team a shot at victory.
Bangladesh got the breakthrough with the fourth delivery itself as left-arm spinner Nasum Ahmed got rid of opener Kusal Perera (1) who failed to read a flatter and quicker delivery and was clean bowled.
Despite the early jolt, Sri Lanka were on the ascendency with Asalanka getting the boundaries with ease. He hoisted Nasum for two sixes in the third over and then punished Mahedi Hasan for another maximum to take Sri Lanka to 54 for 1 at the end of powerplay.
But Shakib Al Hasan triggered a mini batting collapse with two wickets — that of Pathum Nissanka (24) and Avishka Fernando (0) — in four balls.
Mohammad Saifuddin then dismissed Wanindu Hasaranga (6) as Sri Lanka lost three wickets in 10 balls for the addition of nine runs.
Sri Lanka were 80 for 4 at the halfway mark and set-batter Asalanka, who reached to his fifty off 32 balls, kept them in the hunt. He was going great guns by hoisting Mahmudullah for two sixes in the 14th over.
Sri Lanka needed 46 from the final five overs but Asalanka and new batsman Rajapaksa decisively titled the balance of the game in their favour. Rajapaksa smacked three sixes in a sensational show of batting pyrotechnics in the 16th over bowled by Saifuddin from which Sri Lanka took 22 runs.
Earlier, opener Mohammad Naim and Mushfiqur Rahim cracked impressive half centuries to steer Bangladesh to a competitive 171 for four.
Joining forces in the eighth over when their side was struggling at 56 for two, Naim and Rahim stitched a quick 73-run stand in 8.3 overs to keep the momentum going.
Naim hit six boundaries in his 52-ball 62-run knock while Rahim remained unbeaten on 57 from 37 balls with the help of five fours and two sixes.
Bangladesh openers Naim and Liton waited for a couple of overs before playing big shots.
The duo looked good for a substantial partnership before Das got out for 16 in sixth over of the bowling of Lahiru Kumara.
Das made room for himself to drive a full ball over the ring but picked mid-off fielder Dasun Shanaka.
The dismissal led to an ugly scene between the batter and the bowler as the umpires had to step in to calm down the frayed tempers.
Kumara was seen charging towards Das who responded and the duo was seen exchanging a few words with their heads almost butting each other before they were separated. There was some pushing and shoving among the players.
Shakib Al Hasan (10) was in the thick of things as soon as he joined and hit two fours in the seventh over off Charith Asalanka but he was clean-bowled by Chamika Karunaratne in the next over.
From 41 for 1 at the end of powerplay overs, Bangladesh were 72 for 2 at the halfway mark.
Rahim was on song as he hit Hasaranga for a six before adding another maximum in the 13th over off Binura Fernando.
Naim reached to his fifty in 44 balls in the 14th over with a four off Lahiru Kumara. He was, however, out in the 17th over as he mistimed a pull shot off giant paceman Binura Fernando, who took a catch off his own bowling.