Toni Kroos’ opportunistic goal direct from a corner helped Real Madrid reach the Spanish Super Cup final with a 3-1 victory over Valencia in Saudi Arabia.
Kroos’ corner was punched in by Valencia keeper Jaume Domenech as he scrambled back towards his line after remonstrating with his defenders.
Isco’s volleyed finish doubled Real’s lead before Luka Modric made it 3-0.
Daniel Parejo scored a late consolation from the penalty spot after the referee consulted the pitchside VAR monitor.
The penalty was given for handball by Sergio Ramos despite it appearing to be accidental.
Barcelona will face Atletico Madrid in the other semi-final on Thursday (19:00 GMT), with Real facing the winner 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 La Liga and finished runner-ups in the Copa del Rey.
Zinedine Zidane’s side, who are second in La Liga on goal difference, dominated from the start and had 17 attempts on goal at King Abdullah Sports City in Jeddah.
Their margin of victory could have been bigger as Isco’s header hit the post before Luka Jovic’s rebound from two yards out was blocked by Domenech.