Luis Suarez scored twice in the second half either side of a Raphael Varane own goal to send the Catalans through and keep their treble hopes alive.
Madrid had gone into the second leg with a slight edge following a 1-1 draw at Camp Nou, but they failed to best Marc-Andre ter Stegen with some clear-cut chances in the first half.
Vinicius Junior was the biggest attacking threat in some cagey opening minutes, seeing a shot well blocked by Ter Stegen after earlier having a penalty appeal waved away.
Ter Stegen again came to Barca's rescue 10 minutes before the break, denying Karim Benzema on the half-volley, before Vinicius steered the ball over the bar from Sergio Reguilon's low cross.
However, 50 minutes in, Barca's attack finally came to life. Ousmane Dembele raced away from Dani Carvajal and cut the ball back for Suarez, who side-footed first time past Keylor Navas at the left-hand post.
1/1 - Luis Suárez has scored Barcelona's goal vs. Real Madrid with his first shot attempt and second touch in the opp. box. Lethal.— OptaJavier (@OptaJavier) February 27, 2019
Ter Stegen made a flying save to keep out Reguilon's header as Madrid stepped up their urgency in pursuit of an equaliser, but the result was put beyond them 69 minutes in when a sliding Varane turned the ball into his own net under pressure from Suarez.
With hope draining from among the home fans, Suarez rubbed salt into their wounds with a chipped penalty four minutes later, leaving Madrid out of the competition and no doubt eager to avenge the defeat in Saturday's LaLiga showdown.
5 - Vinícius Júnior attempted five shots against Barcelona, more than any other player in a first half of a game against Barcelona this season in all competitions (five). Revolution. pic.twitter.com/zaqiQSxPZI— OptaJose (@OptaJose) February 27, 2019
What does it mean? Barca into sixth final in six seasons
Having struggled to find an attacking spark in the first half, Barca made the most of their opportunities after the break as they secured a fifth win in seven visits to the Bernabeu.
More importantly, they are now into the final of the competition for the sixth season in a row and will face either Valencia or Real Betis – who meet in the second leg of their tie on Thursday – for the chance to win a fifth consecutive trophy.
Suarez clinical when it counts
Suarez was barely involved in the first half, but two precise finishes – not to mention a run that forced Varane's own goal – meant he proved his side's decisive figure on a day when Lionel Messi was strangely subdued.
Modric goes missing
Despite Madrid's midfield having a decent control of the game in the opening half, Luka Modric never really managed to influence the game either in attack or in terms of keeping the Barca counter at bay.
Key Opta Facts
- Barcelona have scored at least once in 17 of their last 18 visits to the Santiago Bernabeu in all competitions (40 on aggregate, an average of 2.22 per game).
- Nine of the last 20 Clasicos played in all competitions ended 0-0 at half-time. However, none of them ended in a goalless draw.
- Barcelona only attempted four shots in this game, their worst record this season in all competitions.
- Luis Suarez has scored 11 goals in his 13 meetings with Real Madrid in all competitions, more than any other player since his debut for the club.
- Ousmane Dembele has provided seven assists in all competitions this season in 23 appearances, as many as he provided last season after 32 games.
- Real Madrid have lost all five Clasicos at the Santiago Bernabeu with Gareth Bale on the pitch.
These two rivals meet again at the Santiago Bernabaeu in LaLiga on Saturday.