Both Arsenal and Chelsea made it through to the Europa League final on Thursday night, but who starred for the London clubs?
Chelsea ratings - by Blake Welton
Kepa Arrizabalaga - 8
Couldn't do much for Frankfurt's goal but pulled out the big stops when called upon in normal time - the best a stunning one-handed save to thwart Danny da Costa's volley.
And spot-kicks offered a Carabao Cup redemption for the keeper which he expertly took - saving well from both Martin Hinteregger and Goncalo Paciencia.
Andreas Christensen - 6
Appeared to pick up a knock early on and was caught out for Frankfurt's equaliser early in the second period.
Was then forced off with another knock after the interval and really needs to toughen up if he is going to make the central defence his own at Stamford Bridge.
Cesar Azpilicueta - 6
Chelsea's captain was having another reliable performance at right-back before being forced into the heart of defence with Christensen's injury.
Looked out of sorts with the change and lucky to remain on the pitch after fouls on Mijat Gacinovic and Jonathan de Guzman as well as missing from the spot in the shoot-out.
David Luiz - 7
At times rolled back the years, bringing the ball out from the back and spraying the passes around as well as being unlucky to see a header cleared off the line by Makoto Hasebe at the other end.
However, he was poorly out of position and out-paced for Frankfurt's goal but made amends with a goal-line clearance in extra time.
Emerson - 6
A positive outlet down the left in the opening period but his final ball too often let him down.
Was also left too isolated at times, with Hazard not tracking back as Frankfurt surged forward after the break.
Mateo Kovacic - 6
A surprising replacement for N'Golo Kante instead of Ross Barkley, but lacked the much-needed pace and intensity in the middle of the park when Frankfurt were in the ascendancy.
Jorginho - 6
The Brazilian showed flashes of brilliance, including some impressive skill to start a counter-attack from his own half in the opening period but it was far too fleeting.
Ruben Loftus-Cheek - 8
Positive, pacy and direct throughout, the England international could have had a penalty early on before opening the scoring with a cool finish in the 28th minute.
The 23-year-old has now been directly involved in nine goals in his last 14 appearances (four goals, five assists) but was bizarrely taken off with Chelsea needing another goal.
Willian - 6
Not at his effervescent best - dipping in and out of the game and overshadowed in the final third by team-mates Loftus-Cheek and Hazard before being replaced by Pedro.
Olivier Giroud - 7
Chelsea's Europa League talisman has scored 10 goals in the competition this season but was kept quiet for large periods and cut a lonely figure up front at times.
Eden Hazard - 8
He may not have been firing on all cylinders but was still a cut above most of his team-mates with his quality, showing lovely quick feet for Loftus-Cheek's opener.
And once again, when the big moment mattered in the shoot-out, the diminutive Belgian was the Chelsea hero.
Subs
Pedro - 6
Largely anonymous when he came on for Willian with Chelsea under the cosh in the second half.
Davide Zappacosta - 7
A surprising replacement for the injured Christensen instead of like-for-like Gary Cahill but saw a swerving shot parried by Frankfurt stopper Kevin Trapp on his introduction.
Crucially denied Frankfurt an extra-time goal, heading Sebastien Haller's effort off the line and also could have been an extra-time hero with a late rasping effort just over the bar.
Ross Barkley - 8
The game was crying out for his pace and creativity, with the player coming on far too late to really influence the game in the latter stages of normal time but impressed in extra time, carrying the Chelsea fight to Frankfurt.
Gonzalo Higuain - 6
Couldn't really make an impact on his introduction in extra time.
Arsenal ratings - by Nick Wright
Petr Cech - 6
Conceded twice from only three shots on target and could certainly have done better for Valencia's second, but it was his kick upfield which led to Pierre-Emerick Aubameyang's first goal. He now has the chance to end his career on a trophy-winning high in Baku.
Laurent Koscielny - 6
Arsenal supporters were grateful to see him back in the side after his early withdrawal in the first leg. Not quite at his best, though, and unable to get enough on Rodrigo's cross-shot in the build-up to Gameiro's first goal.
Sokratis Papastathopoulos - 6
Could perhaps have done more to help Ainsley Maitland-Niles in the early stages and exposed at times by Kevin Gameiro's pace, but did have some good defensive moments after that, making more clearances (six) than any other Arsenal player.
Nacho Monreal - 6
Caught the eye with some attacking forays and read the game well, making five interceptions over the course of the 90 minutes, but played Gameiro onside for Valencia's second goal.
Sead Kolasinac - 6
Had made more tackles and interceptions combined (five) than any other Arsenal player at the time of his substitution but his positioning was questionable at times, with Valencia's second goal coming down his flank. Appeared to suffer an injury before his withdrawal.
Ainsley Maitland-Niles - 7
Endured a wretched start, failing to track back in the build-up to Valencia's opening goal and struggling to deal with the twin threat of Jose Gaya and Goncalo Guedes, but improved after that. Outstanding run and cross to set up Pierre-Emerick Aubameyang's second goal.
Lucas Torreira - 7
Looked fired up from the start. His passing left something to be desired at times, but his work-rate was invaluable at the heart of Arsenal's midfield and he claimed an assist with his pass to Alexandre Lacazette for the second. Made way for Matteo Guendouzi in the closing stages.
Granit Xhaka - 6
Caught out of position at times in the first half but helped Arsenal slow the game down when they needed it. Helped by having the tenacious Torreira alongside him.
Mesut Ozil - 6
Useful at times in the first half, helping Arsenal keep possession and regain their composure, but tough away games like this are not suited to his creative strengths. Showed his frustration when he reacted angrily to the jeers of the home fans following his substitution.
Alexandre Lacazette - 8
Followed up his double in the first leg with another superb goal. He also claimed an assist, winning the header for Aubameyang's opener, and clipped the outside of the post with another effort in the first half. Showed his usual tenacity off the ball, too.
Pierre-Emerick Aubameyang - 10
A sensational night's work from the Gabon striker, whose hat-trick takes him to 29 goals for the season. All three were brilliantly taken, starting with the equaliser, struck with the outside of his right boot, which killed Valencia's early momentum. On top of his excellent attacking contribution, he also worked tirelessly without the ball. A complete performance.
Subs
Henrikh Mkhitaryan - 7
A nicely-weighted pass to set up Aubameyang's hat-trick goal.
Shkodran Mustafi - 6
Replaced Kolasinac and helped Arsenal see the game out in the closing stages.
Matteo Guendouzi - 7
Did not have long on the pitch but was involved in the build-up to Aubameyang's hat-trick goal.
When is the Europa League final?
The Europa League final, the 10th in its current format and 48th overall of Europe's second-tier competition, will take place on May 29, 2019.
Kick-off is at 8pm (BST), 9pm (CEST). The Olympic Stadium in Baku, the capital of Azerbaijan, will host the final.