The match exploded into life in the second half with Alvaro Negredo firing the opener before the referee controversially deemed Pablo Zabaleta to have handled inside the area.
Thomas Muller stepped up to slot home from the penalty spot before the hosts grabbed the winner when substitute Mario Mandzukic stooped to meet a cross from Muller.
Eden Dzeko spurned a great chance to equalise late on, but the Bosnian striker failed to make proper contact which afforded Manuel Neuer the opportunity to save.
City highlighted their attacking qualities in Wednesday’s semi-final when they put five past AC Milan inside 36 minutes in a 5-3 win, whilst Bayern peppered the Sao Paulo goal throughout their opening match but could only score twice despite their dominance.
It was the German side who started stronger and they almost took the lead after 70 seconds when Franck Ribery found himself unmarked in the City box, but the winger’s low shot was stopped by the outstretched glove of Costel Pantilimon.
City were struggling to string three passes together under relentless Bayern harrying, but for all the hosts’s domination they found clear-cut opportunities at a premium and were forced to halt efforts from distance with Robben often the man to go close.
Bayern missed a great chance to take the lead when Javi Martinez elected to head a teasing cross over the bar when he had Dante lurking behind him in a superior position.
Despite barely touching the ball in the opening half hour, City almost grabbed an unlikely opener when Stevan Jovetic’s shot flew narrowly wide after good work from Zabaleta down the right flank. And the chance appeared to belatedly spark the Premier League side into life as Negredo spurned three openings in as many minutes on the stroke of half-time.
First the Spaniard dragged wide when well-placed and then saw his header from Samir Nasri’s cross saved by Neuer before he completed a trio of misses by heading over the top from a teasing Milner delivery.
City started the second half far more positively and almost broke the deadlock when Nasri latched onto Gael Clichy’s ball only to poke straight at Neuer when he had the opportunity to round the German.
They created an even better chance moments later, Nasri again involved, but Negredo somehow headed straight at Neuer from six yards out with the goal at his mercy.
The Spaniard soon made amends for his profligacy, however, when he raced onto a ball through the middle, outmuscled Javi Martinez, and fired in off the post from the edge of the box.
But their lead did not last long as the referee took centre stage, bizarrely awarding a penalty for handball against Zabaleta after the defender’s header looped up onto his outstretched arm. Substitute Muller sent Pantilimon the wrong way from twelve yards to level the score.
And five minutes later the hosts found themselves ahead when Muller’s cross from the right was headed in by Mandzukic at the back post.
The Croatian then almost put the game beyond doubt when he cleverly turned inside the box before rifling against the post as gaps started to appear in the City backline as they chased a leveller.
Dzeko found himself in between the two opposition centre backs late on, but he hit his shot into the ground allowing Neuer to claw it behind as Bayern held on to win the Audi Cup.
Earlier AC Milan defeated Sao Paulo 1-0 to win the third-place playoff with Kingsley Boateng scoring the decisive goal.