It's a historic win for Canada's rugby sevens squad - with its first cup victory on the HSBC World Rugby Sevens Series circuit.
New Zealand will face Canada in the quarter-finals following a day of few pool upsets in the eighth round of the world series.
Canada got off to a dream start, when winger Matt Mullins opened the scoring within 60 seconds, and then Harry Jones and Mike Fuailefau each added tries as Canada surged to a 19-0 lead.
However, Canadian centre Lucas Hammond broke through to score the winning try.
"No one worries about you that much, and after our (pool stage) loss to Fiji, the big teams probably weren't anxious about us too much today", he said.
Canada began their Singapore campaign with easy wins over Russian Federation (28-15) and Hong Kong (34-0) in Saturday's pool matches, but was beaten also 7-35 by defending Series champion Fiji.
Going into the tournament SA had only lost four matches out of 42 but they lost three in Singapore - 17-12 to England in Pool play‚ 19-17 to Australia in the quarterfinals‚ and 17-12 to New Zealand in the fifth/sixth playoff.
The Blitzboks had a 23-point lead at the start of the Singapore Sevens, and can now aim for as much as 13 more on Sunday if they end fifth, with two more tournaments to go in Paris and London.