Real Madrid suffered a shock defeat in the Spanish Super Cup on Thursday as Athletic Bilbao pulled off a 2-1 victory in Malaga to reach Sunday's final against Barcelona.
Raul Garcia scored twice in the first half, the second a penalty, and while Karim Benzema pulled one back for the defending champions, Bilbao held on to complete a statement win under their new coach Marcelino Garcia Toral.
Bilbao were beaten 3-2 by Barca in La Liga only last week, with Lionel Messi scoring twice at San Mames, yet they will get another shot at Ronald Koeman's side this weekend, with a trophy up for grabs in Seville.
"We are 90 minutes from winning a title," said Marcelino.
"It would be amazing, and even better to do it beating Real Madrid and Barcelona."
Real coach Zinedine Zidane was defiant in defeat.
"It is not a failure," he said. "You can't win every game."
Messi is touch and go to be fit for the final, after missing Wednesday's penalty shoot-out victory over Real Sociedad with a muscle problem, although even without their captain, Barcelona will be strong favourites.
Bilbao, though, should take huge confidence from an excellent performance at La Rosaleda in what was only their second game under Marcelino, who replaced the sacked Gaizka Garitano earlier this month.
They were also up against a Madrid team that had been unbeaten since December 1, even if a chaotic weekend caused by the heavy snowstorm in Spain might have had lasting effects on players' minds and bodies.
Zidane insisted he was not making excuses on Saturday when he criticised the state of the snow-dusted pitch following the goalless draw at Osasuna.
Cancelled flights meant Madrid's players were unable to leave Pamplona until Monday, forced to fly straight to Malaga without returning home.
But even Zidane admitted on Wednesday that four days preparation was enough and there was little to suggest concern from his line-up given it was his full-strength team, the same core of players that has driven their resurgence since October.
"Our start to the game was difficult," said Zidane afterwards.
"The first half was not good. They had two chances and scored two goals. In the second part we changed the picture, we improved and created chances."
Raul Garcia was sent off after 13 minutes when Real Madrid beat Bilbao in the league last month but this time he had two goals in the first half, each coming after a mistake by Lucas Vazquez.
First, Vazquez gave the ball away cheaply, allowing Raul Garcia to finish past Courtois and then Madrid's full-back dragged Inigo Martinez down at the back post after letting him sneak in behind him.
Raul Garcia drove the penalty into the top corner and Bilbao might have been three up had Iker Muniain finished off a flowing move by heading in, instead of wide of the post.
Madrid were better after the interval, with Marco Asensio lively. He hit the post from an Eden Hazard pull-back and then the crossbar with a swerving shot from distance.
The pressure told when Fede Valderde's cross was nodded back for Benzema to tap in, leaving Madrid with just over 10 minutes to find an equaliser.
Benzema thought he had it but the flag was up for offside before Sergio Ramos headed wide and Vinicius Junior curled over in a frantic late surge that Bilbao survived.
Madrid, Spain | AFP