Manchester City ended Bayern Munich’s record winning run in the Champions League with a memorable 3-2 victory at the Allianz Arena, but just fell short of overtaking their opponents to top Group D. City needed to better Bayern’s 3-1 victory over City from the first match between the sides in order to avoid the likes of Real Madrid and likely Barcelona in the next round.

It was an unlikely scenario against a Bayern team that had won 10 straight matches in the Champions League and recorded a 7-0 win at the weekend. And when Bayern went up 2-0 inside the opening 12 minutes through Thomas Muller and Mario Gotze goals, merely avoiding an embarrassing defeat looked the limit of City’s ambitions.

Instead, with Bayern going into a walking daze of the kind they displayed in losing a second leg on home soil to Arsenal in the Champions League last season, City responded superbly. David Silva pulled one back before half time and quick-fire goals from Aleksandar Kolarov, from the penalty spot, and from the excellent James Milner, either side of the hour mark put the visitors in front. City just needed one more goal to top the group, but, despite Bayern still struggling to regain their focus, they were unable to provide it. Manuel Pellegrini even surprisingly replaced Edin Dzeko with Jack Rodwell in the closing stages and appeared to suggest that he thought City needed two more goals in his post-match interview.

Still, Pellegrini is likely to take much from a performance and a result that should provide confidence that, after their humbling defeat to the European champions at the Etihad, they can compete in their first appearance in the latter stages of the Champions League. It was a performance achieved without several first-team players too as Pellegrini admitted to having one eye on the weekend Premier League clash with Arsenal.

Again there was defensive vulnerability, with Martin Demichelis and Joleon Lescott an unsurprisingly unconvincing center-back partnership. But their midfield, even without Yaya Toure, were more equipped than in the first meeting between the sides and the returning David Silva was a key link between midfield and attack.

Of course all that comes with a heavy caveat of Bayern’s own snoozing performance. Pep Guardiola will doubtless vent his frustration at his side, but when on song, as they were for 15 minutes, they still look a class apart in Europe.

City’s unfamiliar back four were all over the place and all too acquiescing against the current standard-bearers in Europe early on. In just the fifth minute, no pressure was applied to Dante just inside his own half and the Brazilian defender pinged a long pass to catch out Kolarov and meet the diagonal run of Muller who controller perfectly in his stride before striking low into the corner.

City continued to fail to get to grips with their opposition. Lescott failed to deal with a ball into the box and allowed Franck Ribery an effort on goal. From the resulting corner, Mario Mandzukic was incredibly allowed to control the ball in the center of the box and hit a low shot that deflected into the path of Gotze to finish from close range. As with the first goal there was a suggestion of offside, but given Bayern’s dominance at that point, City could have few complaints about the score-line.

Unlike after a similarly dominating opening at the Etihad, this time City were able to grab a foothold in the game, admittedly as Bayern’s intensity dropped off. With an extra man in midfield than the first match between the two sides and Milner impressing with his endeavor and ability on the left, City looked increasingly comfortable and reduced their arrears in the 28th minute.

Jesus Navas whipped a fine cross in the danger zone and Miler arrived around the back post to stretch and header back across goal where Silva had followed the play to tuck in from inside the six-yard box.

The goal initially sparked Bayern back into life and City had to withstand more pressure toward the end of the opening half. With Pep Guardiola having shown his frustration on the sidelines, a fully refocused Bayern might have been expected after some harsh words during the interval. Instead, they switched off once more and the match soon turned dramatically in the visitors’ favor.

First came a penalty when Dante unnecessarily stuck his foot across the leg of Milner, who was running relatively harmlessly toward the byline. There was little contact and the award was soft, but Dante, in line with his team’s efforts, had caused his own problems. Kolarov calmly sent Neuer the wrong way from the spot to level things up.

And three minutes later, suddenly City incredibly had the top of the group in their sights. The excellent Silva was again the orchestrator by laying the ball out wide to Navas and this time it was the turn of Bayern’s other central defender, Jerome Boateng, to commit the error with a wild, missed clearance. The ball arrived at the feet of Milner at the back post and the oft-maligned England international placed a fine shot into the corner.

Pellegrini had admitted before kickoff that the match against Arsenal featured more prominently in his thoughts. Yet he still brought on Alvaro Negredo with 17 minutes remaining in a move that hinted he was going for the goal needed to top the group. The Spanish striker came close to getting it too. Capitalizing on another error from Dante, Negredo was just forced into too wide an angle and Neuer was able to block his shot at the near post.

Despite Bayern hanging on, City failed to show the urgency needed to take the top spot, and they will have to hope for a favorable draw in the Round of 16, while reflecting on a fine win that they will hope signifies that they have finally arrived on the European stage.

Bayern Munich 1-0 Manchester City (Goal Thomas... by all-goals

Goal Götze - Bayern Munich 2-0 Man City - 10-12... by video4all

Bayern Munich 2-1 Manchester City (Goal David... by all-goals

Bayern Munich 2-2 Manchester City (Goal pen... by all-goals

Bayern Munich 2-3 Manchester City (Goal James... by all-goals