Second-half goals from Haris Medunjanin and Darko Maletic saw off Albania, who were reduced to ten men five minutes from time when Andi Lila was dismissed. The win leaves Bosnia three points behind Group D leaders France and two behind second-placed Belarus, who beat Luxembourg by the same scoreline tonight.
Albania forced a corner in the first minute, but Ervin Skela's delivery was fired over the crossbar by Armand Dalku. Bosnia responded and Medunjanin forced a save from visiting goalkeeper Samir Ujkani before Senad Lulic shot wide.
Miralem Pjanic's left-foot cross-shot flashed wide of the far post and Zvjezdan Misimovic drilled a free-kick from 20 yards out into the wall. Ujkani saved the Dynamo Moscow midfielder's shot. Goalkeeper Kenan Hasagic then held Skela's volley before another Misimovic effort, blocked by Ansi Agolli, brought an end to a goalless first half.
The impressive Misimovic provided the best effort yet 11 minutes after the break when his 20-yard strike forced Ujkani to save with his feet. The half as a whole produced little in the way of goalmouth action, however, Edin Dzeko headed wide shortly before the home team finally broke the deadlock in the 67th minute.
Medunjanin ran onto Boris Pandza's long through-ball and finished low past Ujkani with his left foot. Albania were unable to find a response and their frustration spilled over four minutes from time when Lila hacked down Elvir Rahimic and was shown a straight red card.
Maletic took advantage when he slotted home Misimiovic's through-ball in stoppage time, and substitute Zlatan Muslimovic went close to a third when he fired narrowly wide from 12 yards.