France 1-2 Belgium
Belgium inflicted France's first home defeat for three years with an injury-time winner by Marc Wilmots.
France were without Zinedine Zidane and Thierry Henry for their final match before flying out to the Far East to defend their World Cup crown.
Zidane was at the birth of his third child, while Henry is nursing a knee strain.
Belgium - also missing several key players - opened the scoring through defender Glen de Boeck who headed home a free-kick by playmaker Johan Walem in the 20th minute.
The hosts equalised through defender Frank Leboeuf five minutes from the break after a deflection by midfielder Timmy Simmons into his own net.
But Wilmots struck with a volley two minutes into injury time to hand his side an unexpected victory.
Belgium's Emile Mpenza, Walter Baseggio, Philippe Clement, Joos Valgaeren and Bob Peeters had already been ruled out of the World Cup through injury.
The French begin their World Cup defence against Senegal in Seoul on 31 May.
France: Ulrich Rame; Lilian Thuram (Willy Sagnol), Marcel
Desailly (capt.), Frank Leboeuf, Bixente Lizarazu (Vincent
Candela); Patrick Vieira, Emmanuel Petit, Christophe
Dugarry; Sylvain Wiltord (Alain Boghossian), Youri
Djorkaeff (Johan Micoud); David Trezeguet (Djibril Cisse).
Belgium: Geert De Vlieger; Jacky Peeters (Eric Deflandre),
Glen De Boeck, Daniel Van Buyten, Nico Van Kerckhoven; Mbo
Mpenza (Wesley Sonck), Timmy Simons (Yves Vanderhaeghe),
Johan Walem (Gaetan Englebert), Bart Goor (Danny Boffin),
Gert Verheyen; Marc Wilmots (capt.)