Angel Correa scored late on as Atletico Madrid stunned Barcelona 3-2 in Saudi Arabia to reach the Spanish Super Cup final.
Koke’s clinical strike put Atletico ahead early in the second half.
Lionel Messi equalised with a driven finish and then Antoine Griezmann headed Barcelona into the lead.
Alvaro Morata converted a penalty to make it 2-2 before Correra ran through and grabbed the winner with a powerful strike that was too strong for Neto.
- Kroos scores from a corner as Real beat Valencia
- Spanish Super Cup – who, why and where?
It was an incident-packed second half that also saw Messi have a goal ruled out by video assistant referee for handball while Gerard Pique should have taken the game to extra time but sent his header over the bar.
Victory means Atletico Madrid will face city rivals Real, who beat Valencia 3-1 on Wednesday, in the final on Sunday (18:00 GMT).
The tournament has a new format this season, with the top two from La Liga and the Copa del Rey finalists playing in a four-team competition rather than the two winners playing each other.
Real, despite finishing third in La Liga, qualified because Barcelona won the league and finished runner-ups in the cup.