Arsenal 2 Borussia Dortmund 1: Robin van Persie continued his brilliant scoring form as Arsenal beat Borussia Dortmund at Emirates Stadium to reach the knockout stages of the Champions League again.
The Dutchman, who passed the 30-goal mark for 2011 with a double at Norwich on Saturday, repeated the feat last night.
He headed home following an excellent run and cross from Alex Song five minutes into the second half, and then swept home after a flick-on from a corner as the Gunners clinched top spot in Group F.
Arsenal were, though, made to work hard by an industrious German side who lost playmaker Mario Gotze to injury after less than half an hour, and grabbed a stoppage-time consolation through Japan forward Shinji Kagawa.
Cheered on by a vocal travelling support of some 8,000, Dortmund — unbeaten in six games, winning five — settled quickly.
Poland striker Robert Lewandowski — a reported target for Liverpool — stretched the Arsenal backline, with Kagawa forcing a low save from Wojciech Szczesny.
It was nearly 20 minutes before the home side mounted a serious attack, with Aaron Ramsey's pass sending Theo Walcott away down the right. Dortmund goalkeeper Roman Weidenfeller was out quickly to make the block.
There was then a delay after Thomas Vermaelen and Sven Bender collided when they challenged for a 50-50 ball, with the Dortmund midfielder falling awkwardly and eventually needing to be carried off on a stretcher, replaced by Moritz Leitner.
Dortmund were forced into another unplanned change when much-hyped 19-year-old Gotze, who scored the goal that beat Bayern Munich in the Bundesliga at the weekend, and who has been linked with a £30million move to Arsenal, limped off and Croatian Ivan Perisic came on.
Walcott continued to be the main outlet down the right for Arsenal, and he was correctly flagged just offside from Van Persie's pass as he ran through to tap the ball into the net.
The England man turned provider when he drilled in a low ball across the six-yard box, which Weidenfeller palmed away just as Van Persie looked set to pounce.
Dortmund continued where they had left off at the start of the second half, as Per Mertesacker hacked the ball away for a corner.
However, the Gunners had the lead after 49 minutes.
Song charged down the left, before barging his way through three defenders with no little skill and chipping the ball towards the far post.
Van Persie arrived on cue to send in a downwards header, which Weidenfeller got a hand to, but could not keep out as the frontman made it 16 goals for his season.
After Dortmund rallied, Arsenal had a great chance to double their lead as Ramsey's toe-poke put Gervinho clear.
Although the Ivory Coast forward rounded the goalkeeper, he had allowed covering defender Mats Hummels enough time to knock the ball behind.
As the match entered the final 20 minutes, Gervinho was replaced by on-loan Chelsea midfielder Yossi Benayoun as Wenger looked to protect his side's lead.
Walcott was also withdrawn in the latter stages, giving Abou Diaby the chance to make a welcome return from another frustrating spell on the sidelines.
Van Persie made sure of victory after 87 minutes when he swept home unmarked at the far post following Vermaelen's flick from a corner.
Dortmund gave their excellent supporters a consolation goal when Kagawa shot home from close range in stoppage time.
With Olympiacos winning in Marseille, the Germans mathematically still have something to play for in their final group match, but they most likely face the prospect of Europa League football at best.
Arsenal, though, can head to Athens next month safe in the knowledge qualification and crucially top seeding for the last 16 is assured — which means there will be no chance of another clash with Barcelona — for now.