Real Madrid crushed bitter rivals Barcelona on their own turf in the Camp Nou to reach the Copa del Rey final.
Cristiano Ronaldo was the inspiration with two goals and defender Raphael Varane scored his second of the tie before Jordi Alba netted for Barcelona.
Madrid go on to face either Sevilla or Atletico Madrid in the final, with their city rivals taking a 2-1 aggregate lead into Wednesday's second leg.
Lionel Messi sent an early shot across the face of goal but it was Ronaldo who fired the first meaningful salvo when he won and converted a 13th-minute penalty.
The Portugal star was chopped down by Gerard Pique, who was booked, and Ronaldo fired the spot-kick low into the net as Pinto went the wrong way.
Barca's mood was not helped when Cesc Fabregas was almost immediately denied a penalty at the other end, though there appeared to be no contact from either Alvaro Arbeloa or Angel Di Maria.
Ronaldo sent a 20-yard effort bouncing straight into Pinto's midriff and, at the other end, Andres Iniesta fired well wide.
Barca's frustrations grew as Xabi Alonso's barge on Pedro Rodriguez in the penalty area went unpunished, with the forward already on his way down, and Messi was inadvertently blocked off by referee Alberto Undiano Mallenco as he chased Iniesta's through-ball into the box.
Messi curled a low free-kick just wide after Arbeloa was booked for fouling Iniesta.
Sergio Ramos narrowly failed to connect with Mesut Ozil's free-kick and a minute of first-half stoppage time was enlivened only by Alba's theatrical response to minimal contact from Arbeloa on the touchline.
Barca pressed early in the second half but Fabio Coentrao headed away Iniesta's blocked shot, which was dropping to Pedro, and Diego Lopez beat away Sergio Busquets' deflected drive.
Ramos blocked another Iniesta shot but the spell of home pressure came to nothing as Madrid broke away to double their lead in the 57th minute.
A long punt, out of keeping with this fixture, from Sami Khedira sent Di Maria away and when his shot was blocked by Pinto, Ronaldo calmly fired the rebound low past Alba on the line.
David Villa immediately replaced Fabregas and Barca were straight back on the attack but Pedro could not pick out his new strike partner.
Lopez was quickly out of his box to nod Iniesta's lofted through-ball away from Messi and Pedro was again denied a penalty after going down under Coentrao's challenge.
And Varane killed the tie off when he rose highest eight yards out to meet Ozil's corner and head home via the underside of the crossbar.
Pinto parried Ronaldo's dangerous low drive before Barca pushed forward for a late consolation goal.
Pique missed a presentable chance before Alba pulled one back, meeting Iniesta's perfectly weighted scoop with a neat left-footed volley across Lopez and inside the far post.
But it was in vain as Real closed the game out to gain the upper hand going into Saturday's Primera Division rematch at the Bernabeu.