The Blitzboks will face Argentina in a Pool B decider at the Vancouver leg of World Rugby’s Sevens Series in Canada later on Saturday.
The South Africans drew 19-all with France after trailing nil-19 at half-time, but later thrashed Japan 40-12.
The Blitzboks had a disastrous start against France but fared much better against Japan.
They scored four tries in the first half, two by captain, Siviwe Soyizwapi and enjoyed a comfortable 26-nil lead at the break.
Japan went over twice in the second half but South Africa also scored two more tries to secure a 40-12 win.
The pool decider against Argentina kicks off at 11:25pm South African time tonight.