International Test/ South Africa 26 France 36: France brought South Africa's 13-game unbeaten run at home to a grinding halt with a deserved win in front of a stunned Newlands crowd on Saturday.
Bernard Laporte's men outscored the Springboks four tries to one, as the Northern Hemisphere finally had something to cheer about after a difficult few weeks for their various touring sides.
Jake White's side looked bereft of ideas in the three-quarters and were brutally exposed at the scrummage - so often an area of South African dominance - as France produced a performance that left no doubt they will be real contenders come the World Cup next year.
France had far too much ingenuity and pace in the backs and completely controlled the set-piece, where they were held back only by an eccentric refereeing display on the part of Australian Stuart Dickinson.
Percy Montgomery kicked 21 points for the Springboks, who also scored a try through Brent Russell, as the home side had the better of the penalty count, but the fullback's goal-kicking could not mask a tired performance by a Springbok outfit desperately missing the aggression of flanker Schalk Burger.
The 23-year-old suffered a serious neck injury while playing against Scotland last week and is unlikely to play again this year, but White will know from this display that the flanker's recovery is of utmost importance if the Springboks are to mount a credible World Cup challenge in France.
SOUTH AFRICA: Montgomery; Russell, Olivier, Barry, Habana; Van der Westhuyzen, Du Preez; Du Randt, Smit, Andrews; Rossouw, Matfield; Van Niekerk, Smith, Wannenberg. Replacements: Du Toit for Habana (43 mins), Januarie for Du Preez (60 mins). Not used: Botha, Van der Linde, Van den Berg, Cronje, Julies.
FRANCE: Laharrague; Clerc, Fritz, Jauzion, Heymans; Traille, Yachvili; Marconnet, Szarzewski, De Villiers; Pelous, Thion; Betsen, Dussautoir, Harinordoquy. Replacements: Martin for Dussautoir (14 mins), Bonnaire for Harinordoquy (55 mins), Ibanez for Szarzewski (59 mins), Nallet for Pelous (60 mins), Castaignede for Traille (76 mins). Not used: Debaty, Mignoni.
Referee: S Dickinson (Australia).