Aaron Ramsey's header gave Arsenal a battling victory over Borussia Dortmund to keep Arsene Wenger's side top of Champions League Group F.
Wojciech Szczesny denied Marco Reus and Jakub Blaszczykowski as Arsenal looked to contain Dortmund in the first hour.
The Gunners scored with their first effort at goal when Ramsey forced home Mesut Ozil's cross after 62 minutes.
Ramsey almost made it 2-0 moments later and an increasingly desperate Dortmund side could not deny them a famous win.
Arsenal became the first English team to triumph at Dortmund's imposing Westfalenstadion home with their 14th win in 15 unbeaten away games.
That run started in March with a victory at Bayern Munich - the eventual European champions - and this result against the team Bayern beat in last season's final was just as impressive.
Arsenal's remaining Group F ties
Ramsey's goal secured the points, but the win came on the back of a measured performance that saw Arsenal keep Dortmund at arm's length for long periods and score with a classic counter-attack.
The Gunners concentrated on keeping possession in the first half but their conservative approach meant they had just one corner to show for it.
At the other end, Dortmund were producing some typically inventive approach play but struggled to find a way through the visitors' defence, and were unable to find a finish when they did.
Neven Subotic hooked a volley wide after Ramsey inadvertently headed a Reus free-kick back into the danger zone, and Blaszczykowski was also off target when he met Kevin Grosskreutz's cross.
The home side's best chance before the break fell to Henrikh Mkhitaryan, who was teed up by Blaszczykowski but fired wide after trying to pick his spot from the edge of the area.
Trying to keep a team with as much attacking flair as Dortmund quiet appeared a risky tactic, especially when the home side upped the tempo early in the second half.
A Reus header zipped up off the slick surface and forced Szczesny into his first save of the night, quickly followed by his second from a Blaszczykowski snap-shot following a quick break. Reus buried the follow-up but the flag was already up for offside.
Just as the Dortmund pressure was building, however, Arsenal struck with their first meaningful attack.
Ramsey continues purple patch
Aaron Ramsey's goal against Dortmund was his 11th goal for Arsenal this season in all competitions, equalling his tally in his first six seasons combined for the Gunners.
Olivier Giroud caused havoc in the area from Ozil's cross and Ramsey darted in to beat Neven Subotic to the dropping ball, stooping to head past Roman Weidenfeller.
What had been a cagey game suddenly became wide open and moments later another Arsenal counter-attack almost saw them extend their lead. Ramsey was again on the end of it but this time his shot was pushed away by Weidenfeller.
Dortmund threatened an immediate response when Reus failed to convert Lewandowski's cross but there was more happening at the other end, with Nuri Sahin clearing off the line and Per Mertesacker almost getting his head to an inviting delivery.
In the end one goal was enough. Dortmund had failed to score only once in their last 60 home games and had won their last eight home ties in the Champions League, but their search for an equaliser constantly ran into dead ends and Szczesny did not have another serious save to make before the end.
The win gave Arsenal much-needed revenge for
their defeat at home to Dortmund a fortnight ago,
but their passage through to the last 16 is still far from straightforward.
Even if the Gunners beat bottom side Marseille at the Emirates on 26 November, they could still need to pick up a point at Napoli in their final group game in order to secure their progress.
- 01 Weidenfeller
- 19 Großkreutz
- 29 Schmelzer
- 06 Bender (Hofmann - 75' )
- 04 Subotic
- 25 Papastathopoulos
- 16 Blaszczykowski (Aubameyang - 74' )
- 18 Sahin
- 09 Lewandowski Booked
- 10 Mkhitaryan
- 11 Reus (Schieber - 86' )
- 05 Kehl
- 07 Hofmann
- 17 Aubameyang
- 20 Langerak
- 21 Kirch
- 23 Schieber
- 37 Durm
- 01 Szczesny
- 03 Sagna
- 28 Gibbs
- 08 Arteta Booked
- 04 Mertesacker
- 06 Koscielny
- 07 Rosicky (Vermaelen - 91' )
- 16 Ramsey
- 12 Giroud (Bendtner - 90' )
- 11 Özil
- 19 Cazorla (Monreal - 75' )
- 05 Vermaelen
- 17 Monreal
- 21 Fabianski
- 23 Bendtner
- 25 Jenkinson
- 44 Gnabry
- 45 Hayden