Franck Ribery, passed fit after a buttock injury, equalised twice after first Egor Filipenko and then Timofey Kalachev had given Belarus the lead.
Goals in the final 20 minutes from Samir Nasri and Paul Pogba then sealed a hard-fought victory for Didier Deschamps' side, keeping alive their slim hopes of beating Spain to automatic qualification but more importantly keeping them five points ahead of Finland in the race for second place.
France had not scored in their previous five games and Karim Benzema, who had gone 1,217 minutes without an international goal, was dropped to the bench. Dimitri Payet replaced the Real Madrid forward, with Olivier Giroud spearheading Deschamps' attack.
And true to France's recent scoreless form, Belarus were first to threaten when Sergei Balanovich beat Eric Abidal and shot just wide of the far post.
Ribery's solo run ended when he ran into three defenders and Pogba failed to pick out Gael Clichy in an advanced position as France's attacks stalled.
They did threaten from a free-kick, Sergey Veremko saving from Mathieu Valbuena and gathering the rebound under pressure from Laurent Koscielny.
Koscielny fired over from Payet's corner as France's threat remained confined to set-pieces - but it was a Belarus corner that brought the opener. Kalachev delivered from the right, Filipenko climbed above Pogba and headed down and the bounce deceived keeper Hugo Lloris.
Filipenko was promptly booked for a bad foul on Ribery and a member of the Belarusian coaching staff was then sent from the bench by referee Daniele Orsato.
Clichy was also booked, for a foul on Kalachev, as France went in at the interval a goal down.
But they were level two minutes after the restart when goalkeeper Veremko was booked for bringing down Ribery, who tucked away the resulting penalty.
Giroud was unable to connect after excellent work by Blaise Matuidi and France fell behind once again in the 57th minute.
Kalachev took on Clichy and pulled the trigger, with Lloris getting a hand to the ball but again only able to divert it into the net.
France quickly equalised for a second time when Ribery surged on to Valbuena's fine cross and finished at the far post.
And Valbuena was again the provider in the 70th minute as they took the lead for the first time, teeing up Nasri to fire home from 20 yards.
And they extended their lead three minutes later when Ribery took a short corner and Valbuena's cross was pushed up in the air by Veremko. Koscielny missed his connection but Pogba followed in to score.
Ribery appeared to be struggling when he was replaced by Moussa Sissoko and Valbuena departed in injury time to a loud ovation, Josuha Guilavogui his replacement, as France closed the game out.