Manchester City came from two goals down to beat Bayern Munich away from home in their final game in Group D of the Champions League.
The hosts were 2-0 up inside 12 minutes with goals from Thomas Muller and Mario Gotze, although City managed to pull one back before the break through David Silva.
In the second half the English side were far better with goals from Aleksandar Kolarov and James Milner putting them ahead, but they could not find the final goal needed to top the group.
Here, Sports Mole analyses the game to see if the result was right.
Match statistics:
Bayern:
Shots 10
On target 8
Possession 57%
Corners 14
Fouls 12
Man City:
Shots 9
On target 7
Possession 43%
Corners 0
Fouls 16
Was the result fair?
On balance, a draw might have been a fair result, but it was close enough that a win either way would not have been harsh on either team. In the end, it was City who pulled off a brilliant comeback to inflict Bayern's first defeat in the Champions League for 11 games. They could not quite get the fourth goal to win the group, but they have shown that Bayern can be beaten.
Bayern's performance
It started off exactly the same way they have been playing in the last couple of months. They were 2-0 up and cruising inside 12 minutes, but from that moment on for whatever reason they went off the boil. For a team that had conceded just two in the group so far they became very fragile at the back, which will worry Pep Guardiola. In particular City's third was poor defending from a number of players.
Man City's performance
They started absolutely woefully and thoroughly deserved to be 2-0 down inside 12 minutes. After that, however, they slowly began to get back into the game. David Silva started to have an influence and when he did they created many more chances. They were a completely different team after the break and on the second half alone they were worthy of their comeback.
Sports Mole's man of the match
David Silva: With an honourable mention to James Milner, Silva just pips this award. He was vital in getting his team back in the game and he linked the defence to the attack superbly from around the half-hour mark onwards. He arrived late in the box to equalise, but as well as that many of the City chances started from passes by the Spaniard.
Biggest gaffe
There was some awful defending on display from both sides, but the worst bit of the lot came from former Citizens centre-back Jerome Boateng. Jesus Navas crossed, which really should have been cleared by one of five defenders back. Instead, Boateng swung at it, missed, fell over and allowed Milner in for a really good finish for 3-2. It was as bad a piece of defending as Bayern have been good in recent seasons.
Referee performance
David Fernandez Borbalan probably was a little keen to reach for his pocket, but in general controlled the game well. The penalty awarded to Milner after Dante had attempted a tackle may or may not have been given, but it was clear why it was. Aside from that, there were no major decisions for the Spaniard to make.
What next?
Bayern: Shell-shocked Bayern stay in Munich for league action on Saturday, as Hamburger SV visit. There could well be a backlash for the away side to deal with.
Man City: Buoyed by their fine comeback in Germany, City host Premier League leaders Arsenal on Saturday. A win would put them just three points behind the Londoners while a defeat would leave them well off the pace.