Sri Lanka's bowlers worked as a unit to close out a comfortable 64-run win over Bangladesh in a World Twenty20 Group F match in Johannesburg.
Replying to Sri Lanka's total of 147 for five, the Bangladesh batsmen had never looked like getting near with a steady trickle of wickets and some economic bowling.
In the end they were dismissed for 83 to give Sri Lanka a 64-run win with all of the bowlers except Tillakaratne Dilshan taking wickets.
Sri Lanka and Australia's last group match is now effectively a quarter-final while Bangladesh can now start thinking of home.
Chaminda Vaas struck an early blow for Sri Lanka when he trapped Nazimuddin lbw for a duck. Man of the match Dilhara Fernando then collected the scalps of Tamim Iqbal, caught by Lasith Malinga for three, and Aftab Ahmed bowled for 18.
Vaas claimed his second wicket when Mohammad Ashraful hoiked the ball high and into the hands of Dilshan for four.
Nadif Chowdhury was run out for five to leave Bangladesh 40 for five and Shakib Al-Hasan was bowled off his pads by Farveez Maharoof.
Malinga bowled Mashrafe Mortaza for 12 and next Mushfiqur Rahim was run out at the non-striker's end going for a second run.
Sanath Jayasuriya removed Mahmud Ullah for 16, Jehan Mubarak grabbing the catch, and then delivered the finishing touch by having Abdur Razzak caught by wicketkeeper Kumar Sangakkara.
When Sri Lanka batted, Jayasuriya lashed out off his first ball, the third of the innings, and was caught off Mortaza when his lofted square cut found Ullah.
Upul Tharanga and Kumar Sangakkara took the score to 37.
However, Bangladesh struck as Tharanga got a bottom edge off Syed Rasel and the ball stuck between the pads of wicketkeeper Mushfiqur who celebrated the unorthodox catch with glee.
Sangakkara followed for 20 when he was bowled by Ullah and then Chamara Silva was trapped lbw by Shakib for 12.
Mahela Jayawardene made 30 before being bowled by Abdur Razzak.
Dilshan (21 not out) and Jehan Mubarak (31 not out) then led Sri Lanka to 147 for five off their 20 overs.