Haris Hajradinović put the hosts one up in the 24th minute with a goal from the penalty spot.
Poland’s Kamil Glik produced an equalizer just before half time.
Kamil Grosicki found the back of the net with a header in the 67th minute, clinching the winner for Poland.
The victory in Zenica put some wind back in the Poles’ sails after they lost 0:1 against the Netherlands in a Nations League match on Friday.
Poland play their next Nations League game at home on October 11, taking on Italy in the northern Baltic port city of Gdańsk.
The Polish squad is scheduled to play a total of six Nations League matches and two friendlies this year as Europe emerges from the COVID-19 pandemic.
The Nations League is the European football governing body UEFA’s newest national-team competition that is now in its second edition.
The competition is designed to enable teams to play against those that are similarly ranked and also offers an alternative path for teams to qualify for the 2022 World Cup.
Poland’s 2020 fixtures
October 7: Finland (friendly, Gdańsk)
October 11: Italy (Nations League, Gdańsk)
October 14: Bosnia and Herzegovina (Nations League, Wrocław)
November 11: Ukraine (friendly, Chorzów)
November 15: Italy (Nations League, Rome)
November 18: The Netherlands (Nations League, Chorzów)