Nico Williams climbed off the bench to score the winner as Athletic Bilbao came from behind to beat Atletico Madrid 2-1 and reach the Supercopa de Espana final at King Fahd Stadium.
Atleti looked set to face city rivals Real Madrid in the final after Unai Simon's unfortunate own goal put them in front in the second half.
But Athletic mounted a fightback, Yeray Alvarez equalising and substitute Williams completing the comeback with nine minutes to play in Riyadh, where Jose Maria Gimenez saw red late on.
The holders and LaLiga leaders Madrid will do battle for the first trophy of the season on Sunday.
Joao Felix had the ball in the back of the net only eight seconds into the semi-final, but the Portugal forward had strayed offside.
Atleti wanted a penalty when Thomas Lemar went down under a challenge from Alex Berenguer, but referee Guillermo Cuadra Fernandez and the VAR saw nothing untoward before Jan Oblak denied Inaki Williams at the other end.
Yannick Carrasco let fly from long range, but his venomous drive was straight at Athletic goalkeeper Simon in a first half that fizzled out after a bright start.
The LaLiga champions were in front just after the hour-mark, Joao Felix rising to meet an outswinging corner from Lemar and seeing his header strike an upright before hitting Simon and creeping over the line.
Inigo Martinez came close to an equalizer when Oblak kept out his powerful header, but Alvarez leveled after 77 minutes, leaping to head Iker Muniain's corner home.
Athletic had the momentum and Oblak produced a great save to deny Williams, but the teenager put his side ahead by slotting in with his left foot when Atleti failed to deal with another corner.
Gimenez was given his marching orders following a VAR check right at the end for a dangerous high challenge on Martinez as Atleti crashed out.