David Silva and Yaya Toure struck as City produced a fine attacking display to keep their slim hopes of qualifying from Group A alive, but Napoli’s defeat of Villarreal undid them.
The results mean City will now be competing in the second-tier Europa League in the new year and the latter stages at the Etihad Stadium were played out in a muted atmosphere.
Manager Roberto Mancini had feared such a scenario since defeat to Napoli a fortnight ago but his team could not have done much more tonight.
Yet while they may count the cost of a slow start to the campaign, the Barclays Premier League leaders can put the disappointment down to experience and focus on domestic challenges.
The sight of the Bayern teamsheet may have offered them hope at the start of the night.
The Germans, already qualified for the last 16, were without three stars in Arjen Robben, Toni Kroos and Bastian Schweinsteiger and left a host of others on the bench.
Manuel Neuer, Frank Ribery, Thomas Muller, Mario Gomez and Philipp Lahm were all among the Germans’ high-profile substitutes as coach Jupp Heynckes decided to ease up.
That left former City defender Jerome Boateng as the only Bayern player to have started all five of their previous group games.
The incentive for City was there and Mancini made just two changes – both in defence – from the side that thrashed Norwich at the weekend with Joleon Lescott and Stefan Savic both coming in.
Silva, Samir Nasri and Sergio Aguero were all charged with the responsibility of providing creative spark with Edin Dzeko also providing presence up front.
The approach worked as City dominated the game.
They created their first serious opportunity after six minutes when Nasri got free down the right and crossed for Aguero but the Argentinian headed over from the penalty spot.
Although they were unfamiliar in personnel, Bayern still showed signs of their usual efficiency as Ivica Olic broke and forced Joe Hart to save low to his right.
City came forward again and Savic, operating at right-back in the absence of the injured Micah Richards, was bundled over by Olic wide of the Bayern area.
City thought they had taken the lead as Silva curled the resulting free-kick towards goal and Hans-Jorg Butt let it slip in but the goalkeeper was impeded by Lescott.
Bayern applied some pressure as David Alaba and Anatoliy Tymoshchuk fired over but Nasri also dragged a good chance wide.
City went ahead after 37 minutes when Barry whipped in a good ball and Silva took Dzeko’s flick in his stride to strike a superb left-foot shot into the bottom corner from 18 yards.
It was no more than the hosts deserved and they could have increased their advantage before the interval as they broke into their considerable stride.
Aguero made a brilliant run into the area and slid the ball past Butt only to be denied by a sliding stop from Boateng, who earned boos from the home crowd.
Silva then forced Butt to save from a tight angle and Barry shot over on the rebound before Aguero curled another effort wide.
The interval allowed Bayern to regroup and they went close after the restart when Danijel Pranjic shot wide but City soon took a firm grip.
Toure instigated another slick move as he fed Aguero before continuing a run into the box.
The ball came back to him via another good Dzeko flick and he beat the advancing Butt to toe-poke into the goal.
Bayern showed a further glimpse of their quality as Alaba tested Hart with a dipping half-volley but City quickly recovered as Dzeko shot wide from long range.
With Napoli still being held at this stage, optimism was growing but that soon changed.
Barry tested Butt with a fierce 20-yard drive after the hour but word then came through Napoli had gone ahead in Spain.
The atmosphere became noticeably more subdued as news of Napoli’s opener spread around the ground and for a while the only significant noise came from the large Bayern Munich section.
The sense of anti-climax only deepened when Napoli doubled their lead but City still wanted to go down fighting as Dzeko shot at Butt.
Nasri then had a tricky run halted by Butt before shooting wide from 20 yards.