Former Manchester City defender Jerome Boateng scored a last-minute winner against his former side to hand Bayern Munich a dramatic 1-0 victory in their opening Champions League Group E game of the season.
The Citizens almost went behind after just 40 seconds as Thomas Muller raced onto Robert Lewandowski's flick and rounded Joe Hart. The City goalkeeper seemed to clip the German striker, who stumbled as he struck the ball and stabbed it into the side netting, but no penalty was given.
Bayern completely dominated possession for the opening five minutes, but City slowly grew into the game and Edin Dzeko forced Manuel Neuer into his first save of the night with a powerful low drive from an incredibly tight angle.
Muller again came close for Bayern in the 20th minute with a thumping header which Hart did fantastically to push over the bar at full stretch.
Two minutes later, Hart was called into action again to deny Mario Gotze, but City continued to cause a threat on the break and Dzeko came within inches of putting the away side ahead with a curling, left-footed effort after an incisive breakaway led by the strong running of Yaya Toure.
The next impressive save made by Hart came when he pushed away David Alaba's half-volley in the 32nd minute, shortly after the left-back had gone similarly close with another rasping drive.
Bayern continued to stream forward and there seemed to be danger when Lewandowski collected the ball inside the area, but Hart forced the Polish striker wide and he scuffed his effort into the side netting.
Hart impressed all evening, but almost undid all of his good work when he misjudged a deep cross from the right in the second period, but made amends by dashing back to push away Juan Bernat's dipping volley from the byline.
Jesus Navas proved to be a valuable outlet for City on the break and his cross teed up David Silva, who couldn't quite guide a difficult header on target.
Hart again showed glimpses that his concentration was slipping when he spilled a speculative drive at the feet of Muller, but he reacted quickly to smother the German's follow-up effort.
Manuel Pellegrini's side seemed to have done enough to earn a point when Hart produced another marvellous save to tip Boateng's 25-yard shot wide, but after City failed to clear an injury-time corner, the defender sent a curling shot beyond the reach of the England international and into the far corner of the net.
Manchester City still had time to come close to an equaliser, but Sergio Aguero poked a difficult chance just wide of the near post with the last kick of the game.