Canada captain Joe Harris admitted his side could have chased South Africa's winning target of 255 a little quicker than they did - but said batting for 50 overs was more important.
Pollock (left) bowls to Canada's Ishwar Maraj
Harris' side laboured to 136 for 5 in their 50 overs as opener Ishwar Maraj carried his bat for an unbeaten 53 off 155 balls.
The Canadians did see out their allotment for the first time in the tournament after crashing to the lowest-ever one-day international score of 36 all out against Sri Lanka last week.
"I am happy we didn't go out there and embarrass
ourselves and got bowled out," said Harris.
"Then again, I wished we had
gone after the runs and, if we had lost, we would have lost
going after the runs."
We just wanted to bat right through
Canada captain Joe Harris
Canada looked a stiff proposition early on after reducing South Africa to 23-3 off eight overs.
But opener Graeme Smith hit 62 and Boeta Dippenaar blasted 80 to steer the Proteas away from the abyss.
Harris said: "We had a good start and I
was happy with that."
In reply, Canada lost dangerman John Davison, who hit 111 against West Indies, for one off his second ball.
But despite Canada's sluggishness, they were indebted to South Africa for prolonging their innings - Majar was dropped four times.
"We tried to restrict the runs when they were batting, and we were helped by
the fact that it was a difficult pitch to play on," said Harris.
"But they have some fine bowlers and we found it difficult to score off
"I think they bowled very well and obviously the run rate
went up too far.
"We've been bowled out for some low scores and
we just wanted to bat right through."
Canada's final game will be against New Zealand in Benoni on
Monday, while South Africa face Sri Lanka in Durban on the same day.