Thanks to a better points' difference, the Blitzboks finished second in Pool B and have to face Fiji, recent winners of Rugby World Cup Sevens in Cape Town, in the quarter-final on Sunday, with kick-off scheduled for 05h50 SA time.
After their disappointing defeat against Great Britain earlier on Saturday, the Blitzboks had a better start this time when Ronald Brown showed some great stepping to score from a move that started with a brilliant turnover won by Shilton van Wyk, and a minute later Impi Visser scored their second try from an intercept to make it 12-0 after five minutes.
France hit back just before the break when their try-scoring machine Aaron Grandidier went over to make it 12-7, but the Blitzboks hit back with a magnificent try by Selvyn Davids after the hooter had sounded, coming from a very strong run in the midfield by JC Pretorius to make the half-time score 17-7.
France drew first blood in the second-half when Leraitre Paul went over from the restart, with the conversion closing the gap to just three points at 17-14.
Grandidier gave France the lead with their third try after a breathless period of play during which possession changed hands a few times, with Davids denied by the bounce of the ball.
The Blitzboks then almost got the match-winner, but Christie Grobbelaar was stopped short, France won back the ball at the ruck and cleared into the dead-ball area to seal the victory.
Springbok Sevens 17 (17) - Tries: Ronald Brown, Impi Visser, Selvyn Davids. Conversion: Brown.
France 19 (7) - Tries: Aaron Grandidier (2), Leraitre Paul. Conversions: Marius Domon (2).
The Springbok Sevens team rallied late against Great Britain at the Hong Kong Stadium, but suffered a close 12-10 defeat in their second Pool B match on Saturday.
Their UK opponents had the better attack in the first half and scored the opening try four minutes in when Jamie Barden crashed over in the corner. At that stage, the South Africans were too lateral on attack, allowing their opponents to stop their runs.
A promising attack turned sour as Selvyn Davids dropped a pass, Barden kicked ahead and from the resulting play and scored the try.
The second half saw a better effort on attack, but the Blitzboks were too individual in nature yet again. The Great Britain defence held firm and when Ryan Oosthuizen knocked the ball on during a promising move, Max McFarland ran 80m to score under the sticks, giving his side a 12-0 lead with four minutes to play.
JC Pretorius finally found some space on the outside and went over in the corner to give the Blitzboks a glimmer of hope after 12 minutes.
Oosthuizen, now instrumental on attack, benefitted from a strong Pretorius run to score in the opposite corner a minute later, but again the conversion went wide. The final seconds were played out by Great Britain, and they sealed their first win.
Springbok Sevens 10 (0) - Tries: JC Pretorius, Ryan Oosthuizen.
Great Britain 12 (5) - Tries: Jamie Barden, Max McFarland. Conversion: Freddie Roddick.