Top of the group and already through, Bayern's 3-2 defeat to Manchester City still proved a thrilling game. Roberto Di Matteo's reunion with Chelsea didn't go as planned, as the home side crashed to a 5-0 defeat.
For all of their early possession, Bayern found themselves a goal down midway through the first half. Mehdi Benatia was late tackling Sergio Aguero in the area and referee Pavel Kralovec sent the Moroccan off and awarded the home team a penalty, which Aguero duly netted.
Buoyed by their lead and rousing home support, City started to take the game to Pep Guardiola's 10 men but Bayern soon wrested back control. Having sealed progression to the knockouts on the last matchday, Guardiola rotated but even the likes of Sebastian Rode and Pierre-Emile Hojbjerg looked comfortable in possession.
It was birthday boy Xabi Alonso who leveled, outsmarting Joe Hart with a lowly struck free kick. At 1-1, Bayern's confidence grew again and their one man disadvantage seemed to become irrelevant. A combination of presumptuous and weak defending from Bacary Sagna allowed Robert Lewandowski to head home a pinpoint pass from Jerome Boateng and Bayern took their lead into the break.
Tensions flared in the second half as City's frustration at being a man up and a goal down grew. When the home side did find a way through, either the final ball failed them or Manuel Neuer was on hand to make a fine save.
With Bayern seemingly on the way to a spirited victory, a fantastic finale turned the game on its head. Uncharacteristically, Alonso misplaced a pass in midfield and Aguero took advantage to burst through and slide the ball past Neuer. Even more odd was Boateng's poor touch in injury time, but City's Argentinean striker took advantage once more, sealing a 3-2 win for the hosts.
Ghastly ghosts in Gelsenkirchen
Facing his old mentor and former club, Roberto Di Matteo endured a miserable night in Gelsenkirchen as Chelsea displayed all the reasons for their superiority, hammering a disappointing Schalke 5-0.
Straight from the start, the side from London were on top. Inside the opening three minutes, Ralf Fährmann saved Diego Costa's shot but from the resulting corner, Chelsea captain John Terry rose higher than home team captain Benedikt Höwedes to head past a ball-watching goalkeeper.
Eric Maxim Choupo-Moting had a deflected shot hit the bar, but Schalke remained the second best team and continued to afford their visitors space and time. Soon enough, Jose Mourinho's side exploited it - Willian finished off some neat interplay beating Fährmann who was once again questionable after being beaten at the near post.
The gulf in class between the two sides became clear, and Chelsea's third goal was the worst example of Schalke's self-inflicted wounds. Jan Kirchhoff headed into his own net from a Chelsea corner under little duress from any opponent.
Christian Clemens, replacing Kirchhoff at the break, headed straight at Thibaut Courtois but Schalke's increased effort was in vain. Substitute Didier Drogba tapped in after Felipe Santana's poor positioning allowed Chelsea in. Two minutes later, Chelsea had five after more defensive woes from Di Matteo's men allowed an unmarked Ramires to head in at the back post.
Fans were pouring out of the stadium even before Chelsea scored in the second half. Schalke's fate in Group G remains open, but after Sporting's 3-1 win against Maribor Di Matteo's side lost their second spot in the group.
Elsewhere in Europe
Lionel Messi broke the Champions League goalscoring record by notching a hat-trick in Barcelona's 4-0 win against APOEL. Messi now has 74 goals in the competition. In Group F's other game, PSG beat Ajax 3-1, the returning Zlatan Ibrahimovic scoring the pivotal second.
Athletic Bilbao secured an important 1-0 win away against Shakhtar Donetsk, but remain four points adrift of the Ukrainian side in second spot in Group H. Porto stay top after winning 3-0 away against BATE. In Bayern's group, Roma were denied victory in Moscow after a last-minute equalizer from the hosts saw the game end 1-1.