Eintracht Frankfurt defeated Rangers 5-4 on penalties to win the Europa League on Wednesday after the final in Seville finished 1-1 at the end of extra time.
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.
"We will celebrate for the next few days now," said Frankfurt coach Oliver Glasner.
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 group stage.
"I dreamed of tonight, of a historic night for the club, a historic night for me," said Borre, the Colombian. "It's my first European title. I will keep this memory forever."
"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 the Rangers came up just short at the end of an incredible run to the final. Only 10 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 United 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 ground 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 Tuesday 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 Germans gradually took control, 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 a free run to the striker, who slotted home.
However, Eintracht drew level in the 69th minute 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.
Rangers might have won it in the 118th minute as the sprinting Ryan Kent arrived at the back post only for Trapp to make a sensational save.
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 Daichi 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.