Match ends, 1. FC Köln 1, Arsenal 0.
FC Cologne 1-0 Arsenal
Manager Arsene Wenger said Arsenal "had got the job done" by advancing to the Europa League knockout stage as Group H winners despite losing at Cologne.
A penalty by Sehrou Guirassy, after Mathieu Debuchy was harshly adjudged to have fouled the French striker, earned Cologne only their second win in 17 Bundesliga and Europa League games this season.
The closest the Gunners came to scoring was when Francis Coquelin hit the post when the game was goalless in the first half.
With one match remaining, Arsenal have 10 points from five games, four ahead of Cologne and Red Star Belgrade, who were held to a goalless draw by Bate Borisov.
"You feel you have done the job to finish top of the group," said Wenger. "We now play our final game at home against Bate Borisov without much at stake, other than the fact that we want to win the game. It's what we wanted."
A second successive Europa League win for Cologne means they could qualify for the knockout stage after losing their first three matches.
More pain in Germany for the Gunners
Of the five defeats Wenger's side have suffered this season, this was the least damaging after qualifying for the last-32 stage with two games to spare.
Yet a much-changed Gunners line-up failed to build on the afterglow of victory over neighbours Tottenham on Saturday as they were beaten again in Germany.
Wenger changed the entire starting XI from the north London derby, forward Danny Welbeck returning from a groin injury after missing the past seven games.
Arsenal's side, which featured Olivier Giroud and Jack Wilshere, had only 16 Premier League starts between them this season, and it was a lacklustre performance against the Bundesliga's bottom club.
Coquelin twice went close to scoring his first goal for four years, the French midfielder fizzing a shot narrowly wide from 20 yards before another effort bounced off the foot of the Cologne post.
Welbeck lasted 45 minutes before he was replaced at the start of the second half by Alex Iwobi.
"Medically, the risk was too great to play him for longer than that," added Wenger. "He was ready to stay on and frustrated to come off, but he's in good shape.
"Welbeck, Giroud and Wilshere all looked dangerous, but we were lacking the accuracy and finishing."
Teenager Nelson turns on the style
One of the few positives for Arsenal was another eye-catching display by Reiss Nelson.
The 17-year-old has impressed in the Europa League and Carabao Cup this season, and again caught the eye after replacing Calum Chambers midway through the second half.
In one sublime move, Nelson danced his way around three defenders before forcing a save from Timo Horn, who also stopped a long distance effort by Wilshere in the closing stages.
Man of the match - Ainsley Maitland-Niles (Arsenal)
Paying the penalty - the stats
- Arsenal have conceded three penalties in their past five away games in all competitions (Watford, Manchester City and Cologne).
- This was the 11th away game that Arsenal have lost in all competitions in 2017 - their most in a calendar year since 2010 (also 11).
- Arsene Wenger's side failed to score in a European away game for the first time since September 2014 (0-2 v Borussia Dortmund), ending a run of scoring in 13 consecutive games.
- Indeed, Arsenal have failed to net in consecutive games in European competition for the first time since the 2013-14 campaign (0-2 defeats v Napoli and Bayern Munich in the Champions League).
Arsenal have three Premier League games - starting with Burnley away on Sunday (14:00 GMT) - to negotiate before they round off their Group H campaign at home to Bate Borisov on 7 December (20:05 GMT).
- 5MarohSubstituted forRauschat 38'minutes
- 24KlünterBooked at 56mins
- 15CórdobaSubstituted forOlkowskiat 56'minutes
- 13OsakoSubstituted forLehmannat 73'minutes
- 19GuirassyBooked at 88mins
- 2DebuchyBooked at 49minsSubstituted forNketiahat 84'minutes
- 21ChambersSubstituted forNelsonat 67'minutes
- 23WelbeckSubstituted forIwobiat 45'minutes
- Vladislav Bezborodov
- Shots on Target
Second Half ends, 1. FC Köln 1, Arsenal 0.
Foul by Jack Wilshere (Arsenal).
Pawel Olkowski (1. FC Köln) wins a free kick in the defensive half.
Corner, Arsenal. Conceded by Timo Horn.
Attempt saved. Jack Wilshere (Arsenal) left footed shot from outside the box is saved in the top left corner. Assisted by Eddie Nketiah.
Foul by Olivier Giroud (Arsenal).
Frederik Sörensen (1. FC Köln) wins a free kick in the defensive half.
Attempt saved. Reiss Nelson (Arsenal) right footed shot from the centre of the box is saved in the top left corner. Assisted by Jack Wilshere.
Sehrou Guirassy (1. FC Köln) is shown the yellow card for a bad foul.
Per Mertesacker (Arsenal) wins a free kick in the defensive half.
Foul by Sehrou Guirassy (1. FC Köln).
Offside, 1. FC Köln. Konstantin Rausch tries a through ball, but Sehrou Guirassy is caught offside.
Substitution, Arsenal. Eddie Nketiah replaces Mathieu Debuchy.
Reiss Nelson (Arsenal) wins a free kick on the right wing.
Foul by Milos Jojic (1. FC Köln).
Alex Iwobi (Arsenal) wins a free kick in the attacking half.
Foul by Salih Özcan (1. FC Köln).
Delay over. They are ready to continue.
Delay in match Jannes Horn (1. FC Köln) because of an injury.
Corner, Arsenal. Conceded by Jannes Horn.
Corner, Arsenal. Conceded by Jorge Meré.
Substitution, 1. FC Köln. Matthias Lehmann replaces Yuya Osako.
Attempt blocked. Jack Wilshere (Arsenal) left footed shot from the centre of the box is blocked. Assisted by Alex Iwobi.
Foul by Francis Coquelin (Arsenal).
Salih Özcan (1. FC Köln) wins a free kick in the defensive half.
Substitution, Arsenal. Reiss Nelson replaces Calum Chambers.
Attempt missed. Jack Wilshere (Arsenal) header from very close range is high and wide to the left.
Attempt saved. Jack Wilshere (Arsenal) left footed shot from outside the box is saved in the bottom right corner. Assisted by Alex Iwobi.
Attempt saved. Per Mertesacker (Arsenal) header from the centre of the box is saved in the bottom left corner. Assisted by Mohamed El Neny with a cross.
Corner, Arsenal. Conceded by Lukas Klünter.
Mohamed El Neny (Arsenal) wins a free kick in the attacking half.
Foul by Milos Jojic (1. FC Köln).
Goal! 1. FC Köln 1, Arsenal 0. Sehrou Guirassy (1. FC Köln) converts the penalty with a right footed shot to the high centre of the goal.
Penalty conceded by Mathieu Debuchy (Arsenal) after a foul in the penalty area.
Penalty 1. FC Köln. Sehrou Guirassy draws a foul in the penalty area.
Attempt saved. Sehrou Guirassy (1. FC Köln) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Milos Jojic.
Foul by Per Mertesacker (Arsenal).
Yuya Osako (1. FC Köln) wins a free kick in the attacking half.
Foul by Calum Chambers (Arsenal).