Bangladesh need a minor miracle if they are to deny South Africa a series whitewash after the hosts were dismissed for 143 in the third and final one-day international in Mirpur.
A win for South Africa will see them dislodge Australia at the top of the one-day rankings and that seems more than likely after a poor display from the hosts.
Albie Morkel was the star turn for the tourists, the 26-year-old finishing with figures of four for 29.
Bangladesh elected to bat first and reached 34 without loss in the ninth over before Morkel struck, having Tamim Iqbal dubiously caught behind by back-up wicketkeeper AB de Villiers.
Shahriar Nafees (25) and Mohammad Ashraful fell in quick succession and Bangladesh slipped to 72 for four in the 18th over when Mohammad Nazimuddin was caught by Graeme Smith at midwicket off Morkel.
Shakib Al Hasan (12), Raqibul Hasan (12), Dhiman Ghosh, Abdur Razzak all went without much resistance to leave the hosts eight down for 118.
Mashrafe Mortaza became Morkel’s fifth victim when he edged behind and the innings closed when Johan Botha removed Mosharraf Hossain to finish with three for 34.