The striker struck in the first half to secure victory for the African nation, which was forced to withstand a late rally, with Edin Dzeko hitting the post.
The striker slotted past Stoke City teammate Asmir Begovic at the Arena Pantanal, although Bosnia was unfortunate not to have led eight minutes earlier when an Edin Dzeko goal was incorrectly ruled out for offside.
The European nation needed a goal in the second half to keep its qualification hopes alive, however it was unable to break down a solid Nigerian defense.
The win leaves Nigeria second in Group F and requiring either a point from their group finale with Argentina or an Iran draw or defeat against Bosnia.
Safet Susic omitted own-goal scorer Sead Kolasinac from the 2-1 loss to Argentina, however, Bosnia was exposed on the left side with Senad Lulic and Emir Spahic caught out of position early.
The Bosnians were very sloppy at the back in the early stages, typified by a poor clearance by captain Spahic in the sixth minute - which forced his fellow defender Haris Medunjanin to earn a yellow card for bringing down Ahmed Musa.
Nigeria produced plenty of chances on goal and deserved to open the scoring, with Odemwingie's free kick in the seventh minute deflecting narrowly wide of the upright, while Ogenyi Onazi - who tried his luck from range on a few occasions - forced a low save out of Begovic on 14 minutes.
For all the instability at the back, Bosnia settled into the game and should have been credited with the game's opening goal when Dzeko got in behind and found the back of the net in the 21st minute - only for the assistant's flag to be incorrectly raised.
Dzeko was clearly Bosnia's best chance of scoring the opener, and minutes later he unleashed a shot from inside the area that Nigeria goalkeeper Vincent Enyeama was forced to produce a strong save to deny the Manchester City man.
The Bosnians would be further aggrieved with the officials when they felt they were denied a foul in the lead up to Nigeria's opener - with Spahic left on the ground, as Emmanuel Emenike squared a ball for goalscorer Odemwingie.
Bosnia was struggling to create much danger as it hunted the equalizer required, and Susic rung the changes prior to the hour mark.
Vedad Ibisevic, the goalscorer against Argentina, was brought on for Izet Hajrovic, and Sejad Salihovic replaced Lulic.
It was almost déjà-vu for Spahic in the 60th minute, as Emenike brushed aside the Bosnian skipper, but he had cover this time around.
Moments later, Begovic was forced off his line to deny the forward on the left hand side of the park, as the Fenerbahce man continued to cause problems.
Ibisevic had a free header from a corner in the 74th minute, but he failed to connect as the ball spawned over the crossbar.
But in the third minute of additional time, Dzeko came within a whisker of an equalizer, as his close-range effort was saved onto the post by Enyeama.