Arsene Wenger's men knew that a point would guarantee them finishing top of the group, but they were ultimately able to do so even with such a poor result against the side bottom of the Bundesliga, with BATE and Red Star Belgrade drawing 0-0 in the other match.
Arsenal dominated the first half and played some slick football as they created a significant number of chances, but they were frustrated by a combination of wayward finishing, Cologne goalkeeper Timo Horn and the post.
The match was initially similarly one-sided after half-time, but Arsenal found Cologne harder to break down.
And Cologne looked more willing to push men forward, an approach which then resulted in Sehrou Guirassy winning and converting a penalty just after the hour mark.
Unsurprisingly Arsenal poured men forward towards the end as they sought to make absolutely sure of their position as group winners and, although they failed to level, it did not matter as the result in Belarus did them a favour.
Proceedings were end-to-end early on and the home side went close to taking the lead - albeit fortuitously - in the sixth minute, as Jhon Cordoba's attempted cross needed to be tipped around the post by David Ospina.
Arsenal soon began to exert some control and Francis Coquelin sent a rasping 25-yard drive agonisingly past the left-hand post with 14 minutes on the clock.
Their next chance fell to Jack Wilshere shortly after, with the midfielder heading a Danny Welbeck cross straight into the arms of the grateful Timo Horn.
Coquelin went close for a second time with just over half-an-hour played, as the Frenchman latched on to Welbeck's pass into the left side of the area and smashed an effort on to the post.
And Welbeck had an opportunity of his own a few minutes later, bending a fine right-footed effort just past the right-hand post from the left side of the box.
Arsenal looked no less in control at the start of the second period and almost crafted a chance at the end of a brilliant move, as Wilshere found Olivier Giroud and raced on to a return pass into the box, only for Jorge Mere to make a vital last-ditch tackle.
But Cologne did start to offer a little more as the hour-mark approached and they took the lead in the 62nd minute.
Guirassy played a clever one-two with Salih Ozcan on the edge of the area and darted into the box, before Mathieu Debuchy nudged him to the ground, allowing the 21-year-old to convert the resulting penalty.
Giroud nearly levelled 13 minutes from time when released into the box by Wilshere, but Timo Horn rushed out to put him off, clattering team-mate Jannes Horn in the process.
Arsenal put Cologne under significant pressure during the latter stages with substitute Eddie Nketiah and Wilshere wasting great chances, but the home side – who still have not won a league game this term – held on to a famous win which puts them level on six points with Red Star, whom they face away from home in their final group outing.
Key Opta Stats:
-Arsenal suffered their first official defeat in the Europa League, after winning three and drawing one of their first four games in the competition.
-The Gunners have now lost each of their last four away games against German opposition (twice v Bayern Munich and once v Borussia Dortmund and Cologne), conceding 13 goals and scoring just two in return.
-Cologne, meanwhile, have lost just two of their last 21 home games in the UEFA Cup/Europa League (W15 D4), keeping 10 clean sheets in this run.
-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).
-The Gunners have conceded three penalties in their last five away games in all competitions (v Watford, Manchester City and FC Koln).
-Arsenal had 12 more shots (inc. blocks) than Cologne in this game, including four more on target, despite their 1-0 defeat.