Eintracht Frankfurt made their way to the final having defeated the likes of Real Betis, Barcelona and West Ham United on the way. They were hopeful of completing their fairytale run with a win in the final. After finishing a lowly 11th in the Bundesliga, this game was their only hope of qualifying for European football next season.
Rangers, on the other hand, defeated Borussia Dortmund, Red Star Belgrade, Braga and RB Leipzig en route to the final. Each of their two-legged ties was high-scoring and averaged nearly seven goals over both legs. With a disappointing domestic season to look back on, they were hoping to end strong with European glory.
The first half began with fans on either side cheering the teams on in a loud chorus of chants at the Ramon Sanchez Pijuan. Rangers looked composed, led by skipper James Tavernier, who bossed the right flank. He was aided by Ryan Kent on the opposite side, who moved around the pitch as if the ball was glued to his feet.
As the game progressed, Eintracht Frankfurt had some good chances to open the scoring. Ansgar Knauff saw his effort saved by Allan McGregor as the German side began using their pace and width to create chances. Soon after, Filip Kostic came up with an effort for the cameras but saw his half-volley hit the side netting.
Rangers also created some decent opportunities of their own as Joe Aribo saw his curling shot sail marginally wide. Lundstram came close late in the first half after heading a cross from Borna Barisic goalwards but his effort was saved by Kevin Trapp.
The sides went into the break deadlocked at 0-0 after neither could take their chances.
As the game resumed after the break, both sides let a flurry of shots fly from which they could have scored. Jesper Lindstrom ventured forward from Eintracht Frankfurt's midfield and attempted a shot that narrowly sailed wide following a deflection. John Lundstram and Ryan Kent, on the other hand, both had chances for Rangers but in vain.
However, Rangers were the first side to get on the scoresheet after 57 minutes. Joe Aribo found himself in the ideal position to convert to send the Scottish side's fans into raptures behind the goal.
Daichi Kamada came close for Eintracht Frankfurt but his cheeky dinked effort landed on top of the net. The German outfit continued to drive forward and soon found the equalizer in the 69th minute. Kostic played a trademark driven cross into the box from the left flank and Rafael Santos Borre reacted first and poked the ball into the net.
Both managers made a few changes to their sides and brought in some fresh legs to try and win the game late on. However, neither side were able to create many clear-cut chances as the game ended 1-1 after 90 minutes, meaning extra-time would be played.
The first half of extra-time was a game of chess as the two sides played cautiously, waiting to pounce on an error. Both sets of players looked exhausted after what was an intense 90 minutes as they navigated their way through extra-time.
Neither Rangers nor Eintracht Frankfurt managed to change the scoreboard, which remained locked at 1-1 after the first period of extra-time.
Rangers came out all guns blazing in the second period and had two big chances to win the cup. However, Trapp in Eintracht's goal had different ideas.
First, Kent found himself unmarked at the far post but Trapp extended a leg to deny him an easy goal. The German custodian's positioning and movement to make the save was immaculate.
A few minutes later, Tavernier had the opportunity to score from a free-kick just outside the box. However, Trapp once again positioned himself well, staying close to the center of the goal to swiftly move towards the attempt. He made a composed save to prevent the ball from sailing into the top corner.
The teams could not be separated after 120 minutes, and the final had to be decided on penalties.
All but one of the first 10 spot-kicks were converted as Eintracht Frankfurt edged Rangers 5-4 in the shootout. Aaron Ramsey, who came on late in extra-time, saw his penalty saved by the magnificent Trapp.
Following the conclusion of this season's Europa League, let's take a look at the player ratings from the final.
Eintracht Frankfurt Player Ratings
Kevin Trapp - 8/10
Trapp put in a performance for the history books as he made clutch saves in key moments to keep Eintracht Frankfurt in the game. He made a total of five saves in 120 minutes and also saved one penalty in the shootout.
Almamy Toure - 7/10
Toure was a massive presence in defense for the German side. He made six clearances, one block and three interceptions. He was dribbled past just once.
Tuta - 6/10
Tuta made a blunder in the build-up to Rangers' goal as he was seen slipping and sliding, well out of position.
Evan Ndicka - 7/10
Ndicka had a decent game in defense as he made seven clearances and won seven of his 10 aerial duels.
Ansgar Knauff - 6.5/10
Knauff was once again a menace on the right flank for Eintracht Frankfurt. He attempted four shots, completed two dribbles, and played two accurate long balls.
Sebastian Rode - 7/10
Rode did well to fight off an early injury to go on and play for 90 minutes. He played four long balls and four key passes as he led from the front.
Djibril Sow - 6.5/10
Sow had a decent game and attempted two shots, of which one was on target.
Filip Kostic - 7.5/10
Kostic was the heartbeat for Eintracht Frankfurt against Rangers. He provided an assist for the equalizer and also converted his penalty in the shootout.
Jesper Lindstrom - 6.5/10
Lindstrom attempted five shots but none of them were on target in a decent outing.
Daichi Kamada - 7/10
Kamada attempted just two shots in the initial 120 minutes of play, with one of them on target. He was effective otherwise, however, and also converted his penalty in the shootout.
Rafael Santos Borre - 8.5/10
He scored Eintracht's equalizing goal with a sharp run into a dangerous position. Borre capped his night off by scoring the winning penalty for his side.
Makoto Hasebe - 7/10
He made one clearance, three tackles and blocked one shot.
Jens Petter Hauge - 6/10
He came on as a substitute and had a decent game.
Kristijan Jakic - 6.5/10
Jakic came on for Rode and put in a good performance.
Christopher Lenz - 7/10
Lenz came on late in the game to score Eintracht Frankfurt's opening penalty of the shootout.
Ajdin Hrustic - 7/10
Hrustic scored his penalty in the shootout.
Rangers Player Ratings
Allan McGregor - 6.5/10
McGregor made three saves, two of which were from shots inside the box.
James Tavernier - 7.5/10
Tavernier made seven clearances, three interceptions and two tackles, and won 14 of his 22 duels. He also scored his penalty in the shootout in another excellent all-round display.
Connor Goldson - 7/10
Goldson made seven clearances, two tackles and two interceptions, and blocked one shot.
Calvin Bassey - 7/10
Bassey had a decent game, making four clearances and three interceptions and blocked two shots.
Borna Barisic - 6.5/10
Barisic won seven of his 13 duels. His passing was decent as well as he completed three accurate crosses and two accurate long balls.
Ryan Jack - 6.5/10
Jack had a decent game on the right side of the Rangers midfield but didn't impact the game as much as his side would have wanted.
John Lundstram - 6/10
Lundstram had an eventful night as he got away with a high boot on Rode that injured the latter. He also missed a few chances to score, though he had a solid outing in midfield.
Glen Kamara - 6/10
Kamara had a decent game in midfield but managed to complete just 15 passes in 90 minutes of action. He helped out defensively though, winning five of his seven duels and recording a tackle, an interception and a block.
Ryan Kent - 7/10
Kent missed one big chance in the game which could have won Rangers the trophy. He was excellent with the ball otherwise and completed four dribbles while also winning four fouls.
Joe Aribo - 7/10
Aribo opened the scoring in the final after a sharp run, keeping his balance and slotting the ball into the net.
Scott Wright - 6.5/10
Wright had a decent game but was booked.
Fashion Sakala - 5/10
He came on in the second half of normal time but was replaced in the second period of extra-time without leaving much of an impact.
Steven Davis - 6.5/10
Davis had a decent game after replacing Jack, recording a key pass and completing 86% of his passes.
Scott Arfield - 6.5/10
Arfield came on to replace Kamara and put in a good performance, even seeing one of his shots blocked by an Eintracht Frankfurt defender.
James Sands - 6/10
Sands replaced the goalscorer Aribo in extra-time but didn't do much in his 19 minutes on the pitch.
Aaron Ramsey - 5/10
Ramsey came on for Sakala in the second period of extra-time solely to help out in the penalty shootout but missed his spot-kick.
Kemar Roofe - 6.5/10
Roofe came on late in the game and converted from the spot in the shootout.