Kevin de Bruyne was the stand-out performer for the hosts and set up Chelsea team-mates Eden Hazard and Romelu Lukaku on a number of occasions but Belgium failed to find a breakthrough after dominating proceedings.
PSV teenager Zakaria Bakkali missed out for Belgium after suffering a thigh strain in training, while Tottenham defender Jan Vertonghen was absent from the squad.
For France, Eric Abidal was named in the starting XI for his first international appearance since February 2012, having remarkably battled cancer and undergone a liver transplant.
As expected, it was a fiery opening 15 minutes as both sides conceded a number of fouls, including Vincent Kompany who caught Mathieu Valbuena with a stray elbow.
Karim Benzema made a bright start and forced Thibaut Courtois into a smart save at his near post in the 11th minute, just moments after almost connecting with a Franck Ribery cross.
But it was Belgium who had the best chance of the opening exchanges, when De Bruyne beat Gael Clichy and crossed for Lukaku inside the six-yard box, only to see Laurent Koscielny clear with an excellent piece of defending.
The hosts continued to push France back into their own half throughout the first 30 minutes as Hazard had an effort from the edge of the area saved well by Hugo Lloris, before De Bruyne saw his dangerous through-ball to Hazard intercepted well by Koscielny.
De Bruyne was at the heart of all Belgium's attacks and should have put his side ahead in the 37th minute, but he dragged his effort wide after Koscielny had cleared Nacer Chadli’s cross.
Ribery almost forced a breakthrough for France just before half-time but his dangerous ball across the face of goal was turned behind by Kompany to deny Benzema a tap in, before the latter blazed over the crossbar following another great pass from the Bayern Munich star.
France went close to gifting the hosts the opening goal shortly after the restart when Sagna played a dangerous pass back to Lloris and the goalkeeper had to scuff it out for a corner.
And Abidal committed the same error just a few seconds later, this time forcing Lloris to dribble past Lukaku, who was hurtling towards goal.
Sebastien Pocognoli fired a good chance high over the bar and Alex Witsel poked wide from a corner as numerous Belgium opportunities went begging.
The best chance fell to Lukaku on the hour mark though. De Bruyne squared the ball across goal, after a brilliant backheel from Chadli, but the striker was unable to connect with his outstretched leg and convert.
France hit back, but Courtois was on hand to save Benzema’s close-range effort, with Ribery again at the heart of things.
Both managers tried to force a late winner with a string of substitutions, including Arsenal striker Olivier Giroud, who volleyed high over the bar during the closing stages as France almost nicked a winner.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.