Group B, Bloemfontein: South Africa 109-0 (12 overs) beat Bangladesh 108 all out (35.1 overs) by 10 wickets.
South Africa cruised to an easy 10-wicket victory over Bangladesh to keep alive their hopes of making the Super Sixes.
Paceman Makhaya Ntini picked up four wickets for 24 runs as Bangladesh were skittled out for 108 in just 35.1 overs after being put into bat.
And South Africa's openers Gary Kirsten and Herschelle Gibbs produced a breathtaking display of big hitting to reach their victory target shortly after lunch.
Kirsten finished on 52 not out and Gibbs matched him almost stroke for stroke as his unbeaten 49 took his average for the tournament to 151 - and boosted the side's net run rate.
The hosts came into the game under pressure after losing two of their opening three Group B games.
And there was a surprise for the fans at Goodyear Park as paceman Allan Donald was left out in his home town in place of 20-year-old Monde Zondeki.
But it mattered little as captain Shaun Pollock and Ntini did the damage with a blistering opening spell.
Pollock made the breakthrough with just three runs on the board as Al-Sahariar ballooned the ball into the hands of Robin Peterson at mid-off.
Ntini then had Mohammad Ashraful edging to wicketkeeper Mark Boucher for six and Ehsanul Haque soon followed when he was caught by Zondeki off Pollock.
Andrew Hall took just two balls to make his mark as he had Sanwar Hossain caught in the slips by Jacques Kallis.
And Zondeki celebrated his promotion by dismissing Alok Kapali in the very next over thanks to a sharp catch at third slip from Boeta Dippenaar.
Hall struck again to have Tushar Imran caught in the gully by Dippenaar to leave the score on 56 for 6.
Khaled Mashud and Khaled Mahmud showed more patience than their team-mates in a 35-run partnership, but Ntini returned to have captain Mashud caught behind by Boucher.
The Tigers crumbled after that with Mohammad Rafique run out by Peterson in the next over and Ntini claimed the wickets of Manjural Islam and Mahmud to complete an impressive haul.
With the pressure off, Kirsten and Gibbs set about hitting the cover off the ball.
They cruised past 50 in the sixth over and went into the lunch break needing just 34 runs to win.
It took them just three more overs to do so.
Kirsten reached his 50 with two fours and a six in the space of three balls, and Gibbs hit the winning runs from the last ball of the 12th over to inflict Bangladesh's third defeat of the tournament.
South Africa: Herschelle Gibbs, Gary Kirsten, Boeta Dippenaar, Jacques Kallis, Andrew Hall, Mark Boucher, Shaun Pollock (captain), Lance Klusener, Robin Peterson, Makhaya Ntini, Monde Zondeki.
Bangladesh: Al-Sahariar, Ehsanul Haque, Sanwar Hossain, Alok Kapali, Mohammad Ashraful, Tushar Imran, Khaled Mashud (captain), Khaled Mahmud, Mohammad Rafique, Manjural Islam, Talha Jubair.
Umpires: B F Bowden and S Venkataraghavan.