Forward Motin Miah netted twice while another forward Mohammad Ibrahim scored the remaining goal for the home side.
With the feat, Bangladesh finished Group A runners-up to play Group B champion Burundi in the 2nd semifinal on Thursday at the same time and same venue while Group A champions Palestine will play first semifinal on Wednesday against Group B runners-up, either Seychelles or Mauritius.
Both Bangladesh and Sri Lanka lost to upper-ranked Palestine by equal 0-2 goals margin in their first matches. So, Bangladesh badly needed a win against Sri Lanka to confirm their semifinal berth.
Bangladesh made four changes in their previous line-up in the must-win match.
Midfielder Manik Hossain Mollah, defenders Riyadul Hasan and Bishwanath Ghosh were included in the squad while forward Mahbubur Rahman Sufil, who was in the bench in the last match against Palestine, was included in the playing XI under the captaincy of Topu Barman.
Captain Jamal Bhuiyan was dropped from the squad due to a hamstring injury, while defender Yeasin Khan ruled out due to fever. Defender Rayhan Hasan was also dropped in the day’s match.
On the other hand, Sri Lanka appeared with one change -- defender Tharmakulanathan Kajakopan replaced midfielder Razooniya Shabeer.
In the do-or-die match, Motin Miah opened the account for Bangladesh in the 17th minute by a right-footer inside from the box as Sri Lankan midfielder Fernando Harsha failed to clear a long-range shot of debutant midfielder Manik Hossain Mollah (1-0).
With a 1-0 lead, Bangladesh continued their domination over Sri Lanka, but all of their efforts went in vain for lack of poor finishing. Midfielder Saad Uddin and forwards Mohammad Ibrahim, Mahbubur Rahman Sufil wasted at least three close calls in the 11th, 16th and 27th minutes respectively.
Bangladesh defenders, especially captain Topu Barman, successfully saved their post foiling all the attempts by Sri Lankan forwards.
After the half time, both Bangladesh and Sri Lanka got one scoring chance each in a span of four minutes. Sri Lankan forward Razeek Waseem shot the target in the 48th minute while Sohel Rana made the same mistake in the 52nd minute.
In the 64th minute, Motin netted his 2nd goal utilising a blunder by Lankan defender Sebamalainayakam Supan (2-0).
Sohel Rana missed another chance in the 69th minute while Bhutanese Referee Virendha Rai rejected a goal netted by Topu Barman in the 76th minute with a close-range shot due to off-side.
Just after six minutes, forward Mohammad Ibrahim tapped in the ball home utilising a cross from substitute forward Rakib Hossain in the 82nd minute (3-0).
Bangladesh got a blow just a few minutes before the final whistle as their captain Topu Barman got the marching order after receiving the 2nd yellow card in the match in stoppage time (90+1st minute).
Topu got his first yellow card in the first half as he fouled Lankan’s substitute forward Johar Mohamed Zarwan and got the 2nd one as he unethically tackled forward Razeek Waseem nearer the box. Topu will miss the semifinal against Burundi.
Besides, Bangladesh midfielder Saad Uddin got yellow card.
Bangladesh Head Coach Jamie Day said, “It was a tough game for us. Sri Lanka did well against Palestine. But we were confident. We have made some chances and scored. Young players like Manik, Rakib played well today."
About Topu, the head coach said, "We’ll miss Topu in the next match, he is our reliable player… it’s a big blow for us.”
Sri Lanka Head Coach Packeer Ali said, “Football is a game of chances. We missed our chances, so we lost the game. Bangladesh won the match utilising their every chance.”
Bangladesh: Ashraful Islam Rana (GK), Topu Barman (C), Rahmat Mia, Motin Miah, Saad Uddin, Sohel Rana, Mohammad Ibrahim (Shushanto Tripura), Mahbubur Rahman Sufil (Mamunul Islam Mamnu), Manik Hossain Mollah (Rakib Hossain), Riyadul Hasan and Bishwanath Ghosh.
Sri Lanka: Herath Arunasiri (GK), Sebamalainayakam Supan, Charitha Rathnayake, Herath Kumara, Voctor James Figurado (Santhiya Nitharshan), Dilip Suraj Peiris, Mohamed Fazal (C), Tharmakulanathan Kajakopan, Sebamalainayagam Gnanaruban (Johar Mohamed Zarwan), Fernando Harsha, Razeek Waseem.