Unimpressive South Africa ground out an 118-run victory over Canada in their World Cup Group B match on Thursday, keeping alive their hopes of qualifying for the Super Six stage.
But the tournament hosts, who have to beat Sri Lanka in their final group game to have a chance of advancing to the next stage, dropped five catches as Canada, chasing 255 to win, finished on 136 for five after 50 overs.
Fast bowler Makhaya Ntini was the pick of South Africa's attack, completing figures of two for 19 from 10 overs, but left-handed opener Ishwar Maraj, dropped four times, anchored Canada's reply with an unbeaten 53 off 155 balls.
He became only the eighth man to carry his bat through the full quota of overs in a World Cup innings, while his fifty, which included six fours in 148 balls, was the third achieved by a Canadian at this tournament.
Earlier, Boeta Dippenaar rode his luck to rescue South Africa as Canada embarrassed the World Cup hosts with a determined bowling performance.
Dippenaar made 80 as South Africa struggled to 254 for eight from their 50 overs after being put in. Opener Graeme Smith also contributed a half-century.
South Africa, though, made the worst possible start, crashing to 23 for three as debutant medium-pacer Ashish Patel picked up two early wickets.
After starting with a wide, Patel, who ended with three for 41, settled into a good rhythm, moving the ball through the air.
He conceded just one run in his second over and then struck in his third, Herschelle Gibbs (eight) well caught down the leg side by wicketkeeper Ashish Bagai.
SEAMING DELIVERY
Patel's 39-year-old strike partner Davis Joseph picked up the wicket of Gary Kirsten for a duck six balls later, Bagai again the catcher as Joseph seamed a delivery sharply across the left-hander.
Things got worse in the next over when Patel struck for a second time, Jacques Kallis (one) mistiming a pull straight to Nick Ifill at mid-on.
It could have been even more humiliating, Dippenaar dropped at slip by captain Joe Harris with the score on 40.
The miss proved costly as Dippenaar and Smith then put on 109 for the fourth wicket.
With the South African batting line-up weakened to allow room for experimentation with the bowling attack, both batsmen were under pressure and batted well within themselves.
Smith was particularly powerful off his legs but, on 63, played down the wrong line to off spinner John Davison's arm ball just as he looked set to capitalise on a solid start. He faced 79 balls and struck six boundaries.
Mark Boucher made 21 before chopping Nicholas de Groot onto his stumps and Dippenaar's defiance ended shortly afterwards when he paddled the same bowler straight to short fine leg. He faced 118 balls and found the boundary ropes seven times.
Captain Shaun Pollock (32 off 23 balls) hit de Groot back over his head for consecutive sixes to wade in with quick runs at the death, while Andrew Hall (22 not out off 11) hit Joseph for six over midwicket and Makhaya Ntini drove Patel out of the ground in the final over. The last three overs cost 46 runs.