Aaron Ramsey missed for Rangers in the shoot-out after coming on as a substitute with only three minutes left of extra-time, before Rafael Borre struck the winning shot to complete Frankfurt’s remarkable triumph.
Borre was the hero of the night, after already cancelling out Joe Aribo's opener for Rangers as Frankfurt won their first European trophy since 1980 and booked their place in next season’s Champions League.
"We are all heroes. Without the fans we wouldn’t have made it," said Frankfurt goalkeeper Kevin Trapp.
Both clubs were looking to win a second European title in their history, Rangers after clinching the Cup Winners’ Cup in 1972 and Frankfurt after they lifted the UEFA Cup 42 years ago.
But Rangers came up just short at the end of an incredible run to the final. Only ten years ago this week, Rangers fell into administration before being liquidated and relegated to Scotland’s bottom tier.
Frankfurt had already beaten Real Betis, Barcelona and West Ham en route to the final and they were probably deserving winners, shading a compelling contest that always seemed to lack real technical quality.
With a capacity of just under 43,000, Sevilla’s Ramon Sanchez Pizjuan was never going to be big enough to house all the travelling fans, with Rangers bringing over an estimated 100,000 while around 60,000 followed Frankfurt to Spain.
The vast majority enjoyed the day in good spirits but security concerns were not unfounded, with skirmishes breaking out in the city centre during the day on Wednesday while five German fans were arrested late on Tuesday night after police said 200 Frankfurt fans launched an attack on Rangers supporters.
It was a scruffy opening 15 minutes as Joe Aribo almost got away after a neat pirouette by Scott Wright before John Lundstram scraped his studs down the dipping head of Sebastian Rode, leaving the Frankfurt captain with a bloody shirt that had to be changed and a head that had to be strapped.
The German team gradually took control, faster to the ball and slicker in their passing, suffocating Rangers, who were reduced to speculative punts forward to try to escape the press.
Frankfurt’s Ansgar Knauff went close, the penalty box opening up for the winger at the end of a winding run forward, only for Allan McGregor to tip wide.
Rangers had their moments and improved before the break as Lundstram’s header had to be pushed over and Ryan Jack drove too high.
Frankfurt seemed rejuvenated for the start of the second half but it was Rangers who took the lead just before the hour, capitalising on two dreadful Frankfurt errors, each compounding the other.
First, Djibril Sow misjudged a header in midfield, sending it back behind his own defence for the lively Aribo to latch onto, and then as Frankfurt’s Tutu chased, he slipped, gifting an free run to the Rangers striker, who calmly slotted home.
Lindstrom might have equalised almost immediately but his finish was blocked and then Daichi Kamada looped onto the roof of the net when Rangers had failed to clear.
The pressure was mounting and in the 69th minute, it told, as Filip Kostic was given too much space out wide to cross and then in the middle, Connor Goldson and Calvin Bassey both hesitated to clear. Borre nipped between them and prodded in.
There were precious few opportunities in the final minutes but the contest became stretched in extra-time, with Borre almost capitalising on a Bassey stumble.
Rangers were the better team in the second period and their golden chance came in the 118th minute as the sprinting Ryan Kent arrived at the back post but somehow hit keeper Trapp from five yards.
To penalties, and the Rangers fans roared when the coin toss put the shoot-out at their end. James Tavernier, Steven Davis and Scott Arfield all scored for Rangers as did Frankfurt’s Christopher Lenz, Ajdin Hrustic and Kamada, whose shot squeezed in off the post.
But Ramsey fired too straight, hitting Trapp’s left foot and after Kostic and Kemar Roofe converted, it was up to Borre to finish it. He made no mistake.