Sri Lanka slumped to 41-5 but Kusal Perera and Thisara Perera shared 97 runs for the sixth wicket off 61 balls to lift their team.
That may be because, although the game will be played on a fresh Khettarama surface, it appears dryer than those that were produced for the start of the tournament. Bangladesh faces Sri Lanka in a match that will live stream from Colombo, with the victor claiming a place in the championship match against India on Sunday.
This is Bangladesh's 2nd successive win against Sri Lanka among four victories against seven losses in their 11 T20I encounter since August 2007. All three fresh entrants - Shakib, Aponso and Udana - are playing their first game of the Nidahas Trophy.
For Bangladesh, pacer Mustafizur Rahman scalped two wickets.
In case of a washout, Sri Lanka will proceed to the final, courtesy their better net run-rate.
Bangladesh opener Tamim Iqbal, who led the way with 50, said: "It was a very emotional finish, we saw the leg umpire signal a no-ball, we were complaining about the no-ball".
However, they stumbled to be 148-8. Nazmul was economical in the previous game against India, conceding 27 runs from his four overs and more importantly managed to bowl 12 dot balls against a left-hander like Suresh Raina.
Native River wins Cheltenham Gold Cup
Henderson feared the turf course had taken its toll after he watched Might Bite jump the final fence. Anibale Fly (33-1) finished third ahead of Road To Respect and Djakadam.
It was a welcome win for Bangladesh, who were smarting from the pains of the worst air crash in its history just four days back.
The match at the R. Premadasa Stadium was marred by drama at the fag end of the virtual semifinal as Bangladesh captain Shakib Al Hasan gestured to his two batsmen to walk off the field, apparently in protest against giving a run-out decision to Mustafizur Rahman on a seemingly shoulder-height ball.
The Bangladesh team returned to the field and hit the winning runs to beat Sri Lanka by two wickets.
Mahmudullah was adjudged Man of the Match for his brilliant knock.
Middle-order batsman Mahmudullah smashed 43 in 18 balls to present Bangladesh a nail-biting two-wicket victory over Sri Lanka on Friday as the Tigers reached the final of the Nidahas Trophy at the expense of the hosts amid maddening scenes.
Sri Lanka's Thisara Perera plays a shot against Bangladesh during their second Twenty20 cricket match in the Nidahas triangular series in Colombo, Sri Lanka, Friday, March 16, 2018.