A first-leg 1-1 draw left the tie on a knife edge and the Gunners dominated the early exchanges in this home fixture, but Granit Xhaka’s bobbling strike from range was the only effort they managed on target - until Bukayo Saka split the Benfica back three with a great through ball, leaving Pierre-Emerick Aubameyang free to clip home the opener, 20 minutes in.
There were a handful of further half-chances for Mikel Arteta’s team to extend their lead, but minutes before the break Diogo Goncalves sent a sublime free-kick into the top corner to level the match.
READ MORE: Champions League knock-out fixtures by date and time
A dreadful Dani Ceballos error then allowed Rafa to run through and finish into an empty net after the midfielder missed a basic attempted header, but Kieran Tierney produced a solo moment of magic for 2-2 before Aubameyang nodded in the winner with just two minutes to go.
Here are the player ratings from the game on Thursday night.
Bernd Leno - 5. No chance for the equaliser. Easily beaten for the second.
Hector Bellerin - 6. Didn’t get forward too often in a reserved display but fairly solid when tested defensively.
David Luiz - 7. Played out well and showed good concentration throughout.
Gabriel Magalhaes - 6. Lost out aerially and in a few one-on-one duels. Needed to be stronger around the edge of his own area.
Kieran Tierney - 8. Such a reliable outlet. Showed good strength on the run as well as his pace and touch. Fantastic drive to create himself a chance and score an equaliser.
Granit Xhaka - 6. Neat enough in possession but certainly not a dominant display.
Dani Ceballos - 4. One of Arsenal’s underperformers even before his calamitous error. Gave away needless free-kicks and lost possession far too often, then completely missed an attempted header to gift Benfica’s second.
Emile Smith Rowe - 5. A quiet showing where he didn’t really display his vision and creativity.
Martin Odegaard - 6. Flitted in and out of the game. A threat on set-pieces, but couldn’t speed the play up enough at times.
Bukayo Saka - 7. Once again had the keys to unlock the defence. Superb vision for both assists, always a threat.
Pierre-Emerick Aubameyang - 8. Had his shooting boots on this time after a dreadful night in the first leg.
Helton Leite - 6. Didn’t have too much to save and wasn’t particularly solid-looking.
Lucas Verissimo - 5. Beaten by passes down the channel and almost gifted a second goal with a poor touch. Lost out in the aerial battle for the winner.
Nicolas Otamendi - 7. Made his fair share of clearances and won a few tussles with Aubameyang.
Jan Vertonghen - 6. A few moments where his lack of agility was an issue but solid enough overall.
Diogo Goncalves - 7. Fantastic strike for the equaliser and a regular outlet down the right flank.
Julian Weigl - 6. Got through plenty of running and used the ball predictably well.
Adel Taarabt - 5. Booked early on and a very marginal figure for most of the game.
Alejandro Grimaldo - 6. Not used as the main outlet for the team but was hard-working and defended well from wing-back.
Pizzi - 5. Came off after an hour of infrequent impact on the match.
Haris Seferovic - 5. Barely had a sniff, didn’t really link play or offer a hold-up target for his team.
Rafa - 6. Took his goal very coolly but wasn’t a consistent threat.