Real Madrid went berserk in extra time to edge Atletico Madrid 5-3, securing their spot in the Spanish Super Cup final on Wednesday.
Mario Hermoso and Antonio Rudiger exchanged early-headed goals before Ferland Mendy sent Madrid ahead at the Al-Awwal Park stadium in Riyadh.
Antoine Griezmann leveled with a milestone goal for Atletico, becoming their all-time leading scorer, and Kepa Arrizabalaga's own goal sent the Rojiblancos ahead. Still, Dani Carvajal smashed Madrid level, forcing extra time.
With the game heading toward penalties, Stefan Savic's own goal under pressure from Joselu nudged Madrid ahead, and substitute Brahim Diaz wrapped up the win on the counterattack, with Atletico goalkeeper Jan Oblak stranded out of position.
In Sunday's final, Madrid will face either Barcelona or Osasuna, who meet Thursday in the other semi-final.
"Atletico played very well, and so did we; it was a spectacular game," Madrid coach Carlo Ancelotti told Movistar. "We won because we had more energy in the final stages ... (the substitutes) all delivered."
Diego Simeone's Atletico is the only team to beat Madrid this season in September, and they started strongly with Samuel Lino testing Arrizabalaga shortly before they took the lead.
Hermoso headed in the opener after six minutes from Griezmann's corner, as Rodrygo failed to challenge him in the air. Rudiger similarly leveled for Madrid, escaping Savic and nodding Luka Modric's corner home.
Madrid, unbeaten in 20 matches, were in the ascendancy, and full-back Mendy capitalized with a deft flicked finish from Carvajal's low cross.
Milestone man
Griezmann headed into Arrizabalaga's hands before pulling Atletico level in a gripping first half, turning away from Modric before driving home from the edge of the box.
The goal took him ahead of the late Luis Aragones as Atletico's all-time top scorer with 174 goals. Rodrygo almost put Madrid ahead again before the break after leading Atletico's defense on a merry dance, but Oblak parried his effort and grabbed the loose ball before it could spin over the line.
Saudi spectators, despite mainly supporting Real Madrid, jeered Los Blancos midfielder Toni Kroos as he came on as a second-half substitute after he criticized players moving to the country from European football last summer in search of riches.
Oblak made a fine save to thwart Carvajal before Atletico took the lead with 12 minutes remaining. Arrizabalaga collided with Alvaro Morata as he tried to catch a cross, and the ball bounced into Madrid's goal of the on-loan Chelsea stopper. Madrid protested, pleading for a possible foul by Morata, but the officials saw no infringement.
However, Carvajal struck with five minutes to go, rattling a rebound into the top corner after Jude Bellingham's effort was cleared off the line.
The game tightened in extra time, no longer as end-to-end, and neither team could carve out clear chances with the abandon they managed during the opening 90 minutes.
Eventually, Madrid nosed ahead four minutes from the end, with substitute Joselu heading Carvajal's cross at Savic, who deflected the ball beyond the scrambling Oblak and into his own net.
With Atletico desperate for a leveler, Oblak was caught out of position, and Diaz raced forward to beat him to the ball and steered it into the empty net from a distance to seal the win.
Spanish champions and reigning Super Cup winners Barcelona will aim to set up a repeat of last season's Clasico final by beating Osasuna on Thursday.
Atletico faces Real Madrid three times in under a month, with their next clash quickly arriving in the Copa del Rey next Thursday.
"We have a chance for revenge, and we need our fans behind us in our stadium," Atletico's Koke told Movistar. However, Simeone disagreed with the midfielder.
"It's not revenge; in football, there is no revenge," said Simeone. "It's a new knockout game that will be different from today."