Kai Havertz came off the bench to rescue Arsenal as their perfect Champions League record came to an end in Leverkusen.
The Gunners were flat throughout and had a taste of their own medicine when they conceded from an inswinging corner at the start of the second half.
But after Noni Madueke won an 89th-minute penalty with a driving run, fellow substitute Havertz stepped up to convert.
The Germany international did not celebrate against the side he spent a decade playing for before joining Chelsea, but his goal could yet be crucial in this tie.
Gabriel Martinelli hit the crossbar after a lovely counter in Arsenal’s best attack but they could only manage two shots on target all night as Leverkusen restricted them to just three corners.
The home side grew in confidence and took the lead at the start of the second half.
Martin Terrier was denied by David Raya just 10 seconds after the restart but from the following corner Robert Andrich headed powerfully in.
Arsenal won all eight games in the league phase but were far from their best and looked set to continue a poor midweek for Premier League sides thus far.
Madueke added a spark though, and after he was checked by Malik Tillman Havertz kept his cool to score a vital goal.
More to follow