Arsenal did the one thing they haven't done too well in this season's Champions League – defend – and they added that with a timely Olivier Giroud goal and a late Mesut Ozil strike to beat the mighty Bayern Munich in a must-win Champions League game at the Emirates on Tuesday.

Coming off two defeats in Group F, Arsenal needed to show they are worthy of this competition, and boy did they do that, playing the perfect game against the Germans, with second half goals from Giroud and Ozil giving the English Premier League side a deserved, impressive and "man that was good" 2-0 win.

Arsenal decided to play like the away side, happy to give Bayern Munich the bulk of the ball – and the majority of possession they did have – while targeting the goal on the counter.

It worked fairly well as well, with Arsenal threatening every time they hit Bayern on the counter-attack. Indeed, despite having just about a third of the possession in the entire game, Arsenal had as many clear-cut chances as Bayern Munich, with Theo Walcott forcing Manuel Neuer to make a save that only Manuel Neuer could have even dreamt of making.

Nacho Monreal found some space on the left, and whipped in a perfect cross, with Walcott invited to head the ball in. Head it the Arsenal forward did, and pretty well too, but somehow, somehow, Neuer stuck out a left hand, and that too a strong-enough left hand, to prevent the ball from hitting the back of the net.

A while before that, Neuer had also denied Mesut Ozil from opening the scoring, while at the other end, Petr Cech, playing his first Champions League game for Arsenal, had to be at the top of his game as well to deny the likes of Douglas Costa and Robert Lewandowski, who for large parts of the game, was kept pretty quiet – not too bad, considering he is the hottest striker in Europe at the moment.

The pace of the chances created went down a little in the second 45, even if the pattern of play did not change much, with Pep Guardiola deciding to make a couple of changes, bringing Philipp Lahm back into midfield from right-back in a bid to give Bayern Munich that extra thrust.

Arsene Wenger was forced into one change when Aaron Ramsey, unfortunately, hurt his hamstring again, but the Arsenal manager's other decision to bring Olivier Giroud on for Walcott worked wonders.

Giroud scored the vital goal on 77 minutes, even if it was fortuitous, to say the least. Neuer was culpable for the goal, as the Bayern Munich goalkeeper showed he is human after all, rushing in to gather a freekick, only to get nowhere near it, with the ball then hitting, rather than anything else, Giroud's nose before rolling into the net.

It was bedlam for the Arsenal supporters from there, and it only got better right at the end, as Ozil turned in a brilliant run and cross from Hector Bellerin to add the icing on the cake.

Results: Group E: BATE Borisov 0-1 Barcelona; Bayer Leverkusen 4-4 Roma.

Group F: Arsenal 2-0 Bayern Munich; Dinamo Zagreb 0-1 Olympiakos.

Group G: FC Porto 2-0 Maccabi Tel Aviv; Dynamo Kyiv 0-0 Chelsea.

Group H: Zenit St. Petersburg 3-1 Lyon; Valencia 2-1 Gent.