Pedro celebrates after scoring against Real Madrid
Andres Iniesta returned from injury to thread a perfect through ball to Pedro Rodriguez for the 54th minute opener before Angel Di Maria found Marcelo with a short pass for Madrid's equalizer 10 minutes later.
Barcelona goes for its second European Cup in three seasons under coach Pep Guardiola as the Spanish champion did its bit for a possible repeat of the 2009 final against Manchester United, which leads Schalke 2-0 in the other semifinal. The final takes place at Wembley on May 28.
Barcelona again dominated a defensive Madrid, which was without banned coach Jose Mourinho for the match at the Camp Nou Stadium.
While Madrid goalkeeper Iker Casillas kept the visitors in touch with a number of superb saves from Lionel Messi in the first half, Madrid will also feel hard done by after a potential morale-boosting goal was waved away at the start of the second half.
Referee Frank De Bleeckere judged Cristiano Ronaldo to have fouled Javier Mascherano from behind at the edge of the area despite the Portugal forward being nudged from behind by Gerard Pique, with Gonzalo Higuain's subsequent goal chalked off.
Barcelona struck after that as Pedro gathered Iniesta's pass alone inside the area before beating Casillas with a low, left-footed shot.
Madrid, which looked listless for much of the match without Mourinho directing play, did come away with its first goal at the Camp Nou since 2007 when Xabi Alonso fed Di Maria in the 64th. Di Maria broke into the area and beat Victor Valdes but not the near post, although the ball bounced right back to the Argentina forward to slide a short pass over to Marcelo for the equalizer.
Barcelona will now go for its fourth European title and third since 2006. Madrid, meanwhile, comes away from the four-game series between the historic rivals with just the Copa del Rey trophy.
Mourinho was banned from the touchline on a night of steady rain, reportedly watching from the comforts of his team hotel.
With goals needed, the Portuguese coach made changes from the first leg with Kaka replacing Mesut Oezil and Higuain starting. Defenders Pepe and Sergio Ramos were both suspended.
Barcelona fielded all eight of its World Cup winners as Iniesta returned after missing the bad-tempered opener that has UEFA examining six charges against the clubs, who were facing off for the fourth time in 18 days with a chance to play for Europe's biggest prize at stake.
The tentative start featured more of the bruising play that accompanied the first leg as Barcelona controlled possession but only began to pepper Casillas' goal once Madrid's upfield pressure slackened.
Needing at least two goals just to force extra-time, Casillas kept Madrid in the game with three classy saves inside a four-minute blitz led by Messi.
Casillas dived to his right to snatch the Argentina forward's 32nd-minute chance before somehow getting a hand up to deny David Villa's curling shot after a Barcelona break.
The Spain goalkeeper also watched chances from Messi and Pedro Rodriguez fly wide before denying Messi's low shot through the crowd.
As the defense grappled to contain Messi, Madrid's attack didn't manage a shot on goal until its opener.
Madrid appeared to find some rhythm after the restart as it began to press forward with more authority while the assistants on the bench appeared to receive tactical instructions through a hand-held computer.
But De Bleeckere's call and Pedro's goal appeared to deflate the visitors, although substitutes Emmanuel Adebayor and Oezil helped offensively as Marcelo equalized.
But the close of the match fell into the pattern of fouls, time-wasting and feigning injury before the 95,701 attendance let out an enormous cheer for substitute Eric Abidal in the 90th as the Barcelona defender played for the first time since undergoing surgery to remove a liver tumor in March.
Short link: