Robin van Persie's golden spell of form continued as he struck twice to beat Borussia Dortmund and send Group F winners Arsenal into the Champions League knockout stage for the 12th successive season.
Van Persie was the beneficiary of fine work by Alex Song to head in his 16th goal of the season four minutes after the interval and wrapped up the win with a simple finish four minutes from time.
Shinji Kagawa pulled a goal back for Borussia with virtually the last kick of the game, but by then Van Persie had already done enough to secure a decisive three points.
Arsenal were made to work hard for victory by the in-form Bundesliga side, but Van Persie was their match-winner again and Marseille's defeat at home by Olympiakos means they will progress as group winners.
The Netherlands international has now scored 31 goals in his last 34 games for Arsenal as he leads their recovery from a troubled start to the season by ensuring they are the first of the Premier League quartet into the next stage of the Champions League.
Arsene Wenger's side were never allowed to display their trademark fluency but Arsenal did what was required to move into the last 16 - and crucially ensured their place at the top of their group.
Arsenal named an unchanged team after their win at Norwich City - as did Borussia after their fine win at Bundesliga leaders Bayern Munich at the weekend.
Jurgen Klopp's side were well-organised and confident, denying Arsenal possession and showing attacking ambition of their own given the opportunity, but Borussia's progress stalled after suffering two injury problems in swift succession midway through the first half.
Sven Bender was taken off on a stretcher after he was accidentally kicked in the face by Arsenal defender Thomas Vermaelen before Mario Gotze, the new teenage star of German football, limped off after failing to recover from an early collision with Song.
Arsenal were not able to take immediate advantage of Borussia's reshuffle and Robert Lewandowski gave keeper Wojciech Szczesny an anxious moment with a 20-yard effort that was just wide.
Arsenal striker Robin van Persie has scored 15 of his 17 Champions League goals at home
Theo Walcott was providing Arsenal's moments of danger, forcing Borussia keeper Roman Weidenfeller to block at his feet from Van Persie's pass before his inviting cross in first-half stoppage time was clutched with the Gunners' in-form captain waiting to pounce.
Szczesny was forced into action to save from Kagawa seconds after the restart before Arsenal finally made the breakthrough from the most inevitable source.
Song deserves huge credit for a surging run and fine delivery that offered Van Persie the opportunity to stretch and head past Weidenfeller.
Gervinho should have doubled Arsenal's advantage on the hour when he was set clear by Aaron Ramsey, but his attempt to round Weidenfeller betrayed a lack of confidence and the chance escaped.
It was the Ivorian's last chance to make an impact as he was soon replaced by Yossi Benayoun - and any possible late jitters were settled by Van Persie's second.
Vermaelen flicked on Mikel Arteta's corner and Van Persie was perfectly placed to sweep home the simplest of finishes, with Kagawa's late strike little consolation for the visitors.
- 13 Szczesny
- 04 Mertesacker
- 05 Vermaelen
- 06 Koscielny (Djourou - 83' )
- 11 Santos
- 08 Arteta
- 14 Walcott Booked (Diaby - 85' )
- 16 Ramsey Booked
- 17 Song
- 10 Van Persie
- 27 Gervinho (Benayoun - 74' Booked )
- 21 Fabianski
- 20 Djourou
- 02 Diaby
- 23 Arshavin
- 26 Frimpong
- 30 Benayoun
- 29 Chamakh
- 01 Weidenfeller
- 15 Hummels
- 27 Felipe Santana
- 29 Schmelzer Booked
- 05 Kehl (Barrios - 63' )
- 22 Bender (Moritz Leitner - 24' )
- 23 Kagawa
- 09 Lewandowski
- 11 Gotze (Perisic - 28' )
- 19 Grosskreutz
- 26 Piszczek
- 20 Langerak
- 25 Owomoyela
- 07 Moritz Leitner
- 16 Blaszczykowski
- 21 Gundogan
- 44 Perisic
- 18 Barrios
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +1:28
Assist by Robert Lewandowski.90:00 +1:28 Goal scored
Goal! - Shinji Kagawa - Arsenal 2 - 1 B Dortmund Shinji Kagawa scores a goal from inside the penalty box low into the middle of the goal. Arsenal 2-1 Borussia Dortmund.90:00 +0:50
The assistant referee signals for offside against Robin van Persie. Indirect free kick taken by Augusto Felipe Santana.90:00 +0:17
Unfair challenge on Clarindo Andre Santos by Robert Lewandowski results in a free kick. Free kick taken by Mikel Arteta.88:53
Marcel Schmelzer takes a outswinging corner to the near post, Johan Djourou manages to make a clearance.88:04
Foul by Robert Lewandowski on Clarindo Andre Santos, free kick awarded. Mikel Arteta takes the free kick.86:52
Robin van Persie is ruled offside. Augusto Felipe Santana restarts play with the free kick.85:20
Thomas Vermaelen provided the assist for the goal.85:20 Goal scored
Goal! - Robin van Persie - Arsenal 2 - 0 B Dortmund Goal scored by Robin van Persie from close in to the bottom right corner of the goal. Arsenal 2-0 Borussia Dortmund.84:38
Corner taken right-footed by Mikel Arteta from the left by-line,84:38 Substitution
Substitution Vassiriki Diaby replaces Theo Walcott.83:22
Free kick awarded for a foul by Mats Hummels on Robin van Persie. Mikel Arteta produces a shot on goal direct from the free kick, Ivan Perisic gets a block in.82:27 Substitution
Substitution Laurent Koscielny leaves the field to be replaced by Johan Djourou.81:49
Shinji Kagawa gives away a free kick for an unfair challenge on Clarindo Andre Santos. Free kick taken by Wojciech Szczesny.77:41
Direct free kick taken by Augusto Felipe Santana.77:41 Booking
Booking The referee cautions Yossi Benayoun for unsporting behaviour.77:09
The assistant referee flags for offside against Robin van Persie. Roman Weidenfeller restarts play with the free kick. Free kick awarded for a foul by Yossi Benayoun on Lukasz Piszczek.76:02
Alex Song fouled by Ivan Perisic, the ref awards a free kick. Wojciech Szczesny restarts play with the free kick.75:05 Booking
Booking The referee cautions Aaron Ramsey for unsporting behaviour.
Free kick awarded for an unfair challenge on Shinji Kagawa by Clarindo Andre Santos. Direct free kick taken by Augusto Felipe Santana.73:02 Substitution
Substitution Yao Gervinho leaves the field to be replaced by Yossi Benayoun.72:26
Marcel Schmelzer takes a outswinging corner from the left by-line played to the near post, clearance by Robin van Persie.71:58
Robin van Persie is caught offside. Augusto Felipe Santana restarts play with the free kick.70:31
Free kick awarded for an unfair challenge on Moritz Leitner by Mikel Arteta. Free kick taken by Augusto Felipe Santana.69:35
Moritz Leitner challenges Robin van Persie unfairly and gives away a free kick. Direct free kick taken by Clarindo Andre Santos.68:15
Moritz Leitner challenges Alex Song unfairly and gives away a free kick. Direct free kick taken by Wojciech Szczesny.66:13
Shot from just outside the box by Theo Walcott misses to the right of the target.64:03
Per Mertesacker gives away a free kick for an unfair challenge on Lucas Barrios. Direct effort from the free kick comes in from Ivan Perisic, blocked by Aaron Ramsey. Corner taken by Moritz Leitner, free kick awarded for a foul by Mats Hummels on Per Mertesacker. Direct free kick taken by Wojciech Szczesny.63:38
Marcel Schmelzer fouled by Robin van Persie, the ref awards a free kick. Mats Hummels restarts play with the free kick.62:58 Substitution
Substitution Lucas Barrios on for Sebastian Kehl.62:19 Booking
Booking The referee shows Theo Walcott a yellow card for dissent.59:56
Robin van Persie takes a inswinging corner to the near post, clearance made by Robert Lewandowski.58:15
Foul by Kevin Grosskreutz on Thomas Vermaelen, free kick awarded. Wojciech Szczesny restarts play with the free kick.56:43
Shinji Kagawa is adjudged to have handled the ball. Free kick taken by Robin van Persie.55:48
Sebastian Kehl concedes a free kick for a foul on Theo Walcott. Free kick taken by Wojciech Szczesny.54:41
Robert Lewandowski has an effort at goal from close in which goes wide right of the target.52:19
Mikel Arteta restarts play with the free kick.52:19 Booking
Booking Marcel Schmelzer receives a yellow card for unsporting behaviour.52:09
Marcel Schmelzer challenges Theo Walcott unfairly and gives away a free kick.51:59
Handball decision goes against Robert Lewandowski. Mikel Arteta takes the free kick.51:16
Free kick awarded for a foul by Lukasz Piszczek on Yao Gervinho. Free kick taken by Mikel Arteta.48:53
Assist on the goal came from Alex Song.48:53 Goal scored
Goal! - Robin van Persie - Arsenal 1 - 0 B Dortmund Robin van Persie scores a headed goal from close in. Arsenal 1-0 Borussia Dortmund.47:02
Shinji Kagawa takes a shot. Save made by Wojciech Szczesny.45:57
Marcel Schmelzer takes a inswinging corner to the near post, clearance by Clarindo Andre Santos.45:01
The second half begins.45:00 +2:49 Half time
Half Time It is the end of the first-half.43:17
Effort on goal by Marcel Schmelzer from 12 yards. Save by Wojciech Szczesny.41:10
The referee gives a free kick against Robert Lewandowski for handball. Thomas Vermaelen takes the free kick.39:55
The referee blows for offside against Theo Walcott. Roman Weidenfeller takes the free kick.38:54
Robert Lewandowski gives away a free kick for an unfair challenge on Thomas Vermaelen. Free kick taken by Mikel Arteta.37:30
Sebastian Kehl takes a long range shot clearing the crossbar.36:14
Kevin Grosskreutz fouled by Laurent Koscielny, the ref awards a free kick. Marcel Schmelzer takes the direct free kick.35:42
Laurent Koscielny gives away a free kick for an unfair challenge on Shinji Kagawa. Mats Hummels restarts play with the free kick.27:24
Roman Weidenfeller restarts play with the free kick.27:24 Substitution
Substitution Ivan Perisic is brought on as a substitute for Mario Gotze.27:24
Yao Gervinho gives away a free kick for an unfair challenge on Augusto Felipe Santana.26:08
Robin van Persie challenges Sebastian Kehl unfairly and gives away a free kick. Free kick taken by Augusto Felipe Santana.25:44
Robert Lewandowski has an effort at goal from outside the area which misses left.20:32
Mikel Arteta takes the direct free kick.20:32 Substitution
Substitution Moritz Leitner comes on in place of Sven Bender.20:32
Unfair challenge on Mikel Arteta by Sven Bender results in a free kick. Free kick taken by Clarindo Andre Santos. Foul by Sven Bender on Thomas Vermaelen, free kick awarded.19:25
Theo Walcott concedes a free kick for a foul on Lukasz Piszczek. Direct free kick taken by Lukasz Piszczek.18:23
Corner taken left-footed by Robin van Persie from the right by-line, clearance made by Sebastian Kehl.16:04
Robin van Persie takes a inswinging corner to the near post, Augusto Felipe Santana makes a clearance.15:20
Kevin Grosskreutz gives away a free kick for an unfair challenge on Theo Walcott. Robin van Persie crosses the ball from the free kick left-footed from right wing, clearance by Lukasz Piszczek.10:46
Robin van Persie takes a shot. Roman Weidenfeller makes a save.9:00
Aaron Ramsey is flagged offside by the assistant referee. Roman Weidenfeller takes the free kick.8:12
Foul by Robert Lewandowski on Clarindo Andre Santos, free kick awarded. Direct free kick taken by Clarindo Andre Santos.7:28
Robert Lewandowski has a headed effort at goal from just inside the area that misses to the right of the target.6:50
Free kick awarded for an unfair challenge on Kevin Grosskreutz by Laurent Koscielny. Marcel Schmelzer restarts play with the free kick.4:17
Shinji Kagawa takes a shot. Save made by Wojciech Szczesny.3:51
Lukasz Piszczek challenges Yao Gervinho unfairly and gives away a free kick. Free kick taken by Yao Gervinho.1:27
Marcel Schmelzer fouled by Robin van Persie, the ref awards a free kick. Marcel Schmelzer restarts play with the free kick.1:06
Sven Bender challenges Alex Song unfairly and gives away a free kick. Clarindo Andre Santos restarts play with the free kick.0:37
Mats Hummels concedes a free kick for a foul on Robin van Persie. Direct free kick taken by Aaron Ramsey.0:00
The match gets underway.
Live data and text provided by our data suppliers