The win, their 27th in a row in the World Series, was secured with second half tries by Ryan Oosthuizen and Justin Geduld, both converted by Branco du Preez, after the scores were still tied up 0-0 at the break of the hard-fought affair.
South Africa enjoyed most of the territorial advantage in the second stanza and their defence never faltered against a plucky Canada, who kept on trying.
It was to no avail though as they could not breach the Blitzboks’ defence, with the South Africans coming through the heavy traffic when it mattered most.
Oosthuizen finished off a good attacking move to give his team some breathing space, and Geduld scored after smothering defence forced Canada to force a pass that was not on.
Earlier on Saturday, the Blitzboks eased into the playoffs with an impressive 43-0 victory over England in their second and final pool match.
The seven try romp secured top spot in their pool for Neil Powell's team, who looked sharp and precise, despite starting the match without regular skipper Siviwe Soyizwapi, who is nursing a shoulder injury and did not play on Saturday.
The South Africans were on the button from the start against England, with Branco du Preez running strongly from turnover ball to dot down for the 99th time in his World Series career.
The second try was another long-range effort. The Blitzboks won a penalty inside their own half and Selvyn Davids tapped and sent Impi Visser away on a 60m run. The forward made it over the line with an England defender on top of him.
An England handling error near their own line gave South Africa another attacking opportunity and from the resulting scrum, Mfundo Ndlovu was worked over for his first try in two years.
Zain Davids followed him immediately afterwards, running a great line for his second try of the tournament, which handed the Blitzboks a 26-0 lead at the break.
It was 33-0 soon after the restart with Selvyn Davids being put into space by Justin Geduld, as the playmaker turned try-scorer with a 50m run.
Geduld then ran hard and strong to beat a couple of defenders for his first try since January 2020, before Darren Adonis showed some impressive footballing skills en route to his first try in Spain.
South Africa 14 (0) Canada 0
South Africa – Tries: Ryan Oosthuizen, Justin Geduld. Conversions: Branco du Preez (2).
South Africa 43 (26) England 0
South Africa – Tries: Branco du Preez, Impi Visser, Mfundo Ndhlovu, Zain Davids, Selvyn Davids, Justin Geduld, Darren Adonis. Conversions: Du Preez (4).