- Antoine Griezmann (60')
Griezmann, who scored in last Wednesday's opening game against Ukraine, put the world champions on seven points from three games.
Ukraine, who were held to a 1-1 home draw by Kazakhstan, have three points with Finland on two points from two matches.
Bosnia, who have not won in their last 11 outings, lie fourth with one point.
France's performance was far from perfect and coach Didier Deschamps was not pleased.
"Our first half was below par. It was better after the break but I have seen things I had not seen in a while. I know it's hard to play a third game in eight days, with all the travelling, but I had warned them that this game was important," he said.
Captain Hugo Lloris played his 123rd game for France, joining Thierry Henry in second place of the list of Les Bleus' most-capped players behind Lilian Thuram (142).
The keeper shone in the 24th minute with a superb save to deny Darko Todorovic as Bosnia came close to opening the scoring, hitting back after Kingsley Coman had tested Ibrahim Sehic.
Lloris was at it again with an impressive point-blank save from Anel Ahmedhodzic's header two minutes later.
His performance kept France afloat and Lloris was satisfied that the team had shown character.
"We struggled and they were dangerous on counter attacks and on set pieces but the mindset was perfect," he said.
"We played badly but our character made the difference. Our mindset was great."
France struggled against a team happy to sit back but they broke the deadlock on the hour when Griezmann headed home from Adrien Rabiot's perfect cross.
Griezmann is now alone in fourth in the list of France's all-time top men's scorers, moving ahead of David Trezeguet (34) and trailing third-placed Michel Platini by six goals.
Bosnia were forced to switch to a more offensive strategy but Les Bleus calmly controlled the game, hoping that Kylian Mbappe's speed would hurt their opponents on the break.
Mbappe, however, had another disappointing night, failing to threaten throughout.
Thomas Lemar, instead, put on an inspired display, making the most of his playing time after being named in the starting 11, less than two months before Deschamps names his squad for the European Championship, as Ousmane Dembele stayed on the bench.
France will resume their World Cup qualifying campaign at home against Bosnia on Sept. 1, after the Euros.