Angel Correa stunned Barcelona with a late winner as Atletico Madrid snatched an improbable 3-2 semi-final victory in the Supercopa de Espana.
Barcelona had 75 per cent of possession in the opening 45 minutes in Jeddah, Saudi Arabia, and looked set to ease to victory once they got over the shock of shipping a goal to substitute Koke after 20 seconds of the second half.
Lionel Messi equalised, Antoine Griezmann headed Barcelona ahead against his former club, and Messi and Gerard Pique both had goals disallowed by VAR for marginal offside decisions.
But against the momentum, which suggested a Barcelona landslide, Atletico equalised when Vitolo was hacked down by Neto and Alvaro Morata fired home the ensuing 81st-minute penalty.
Atletico wanted a second penalty moments later when Pique handballed, but their frustration at not getting that decision was forgotten when Morata slipped Correa through and the Argentinian forward fired home the fifth and final goal of a remarkable game.
Now Real Madrid stand between Atletico and the Supercopa trophy, with the final on Sunday at the King Abdullah Sports City stadium.
For a while it looked like being Griezmann's night, against the club he left in a €120million close-season deal last year.
Instead, along with the rest of the Barcelona team, he traipsed off wondering how the match slipped away.
The first half was largely forgettable, save for Messi forcing a fine stop from Jan Oblak after a one-two with Jordi Alba, and the goalkeeper also needed to be sharp to keep out an attempted chipped finish from Griezmann.
But Barcelona dominated, their front three of Messi, Griezmann and Luis Suarez full of ideas and sharp movement, and it seemed the floodgates would open in good time.
Yet Atletico took the lead when Koke, on for the second half in place of Hector Herrera, took a pass from Correa and, rather stumbling as he shot, found the bottom-left corner from 15 yards.
Barcelona were level in the 51st minute, Suarez laying off to Messi who rode a challenge from Stefan Savic on the edge of the penalty area before planting a powerful right-footed shot into the left corner.
Messi looked to have a second goal just before the hour, collecting a high ball on the edge of the penalty area, and whirring through Atletico defenders before slipping home a fine finish, yet a VAR check showed a handball from the Ballon d'Or winner.
Griezmann then had his moment, winning a race to the ball to nod home from five yards after Oblak made a stunning parry from a Suarez header.
Barcelona thought they had pulled 3-1 clear when Messi's chipped free-kick was jabbed across goal by Arturo Vidal and Pique smashed in from close range.
Yet VAR again denied them, the call so marginal it was barely perceptible.
Almost from nowhere, Atletico were handed a route back into the match when Neto was left exposed and tripped Vitolo, Morata making no mistake from 12 yards.
Atletico wanted a second penalty when Morata's cross hit Pique's right hand moments later, and they looked to have a case, but this time Barcelona were spared. Diego Simeone, on the touchline, was far from impressed.
Simeone was jumping for joy soon after though as Correa struck, Neto getting his body in the way of the ball but unable to make enough contact to prevent it bouncing over the line.