AFP - Gonzalo Higuain (L) scores against Barcelona's goalkeeper Victor Valdes during the gane but the goal was disallowed |
Barcelona could now face Manchester United in a repeat of the 2009 final - which Barcelona won - as they hold a 2-0 lead over Schalke going into Wednesday's second leg in Manchester.
Needing to overturn a 2-0 home defeat Real had to attack but they never managed a sustained threat on the Barca goal and fell behind to a Pedro strike in the 54th minute.
Marcelo replied 10 minutes later but it was only a consolation goal for Real.
Barcelona midfielder Andres Iniesta, who set up Pedro's goal, was ecstatic.
"It is a unique feeling, to once again be in the final," said Iniesta, who missed the first leg through injury.
"Winning a confrontation like this one deserves to be feted."
Real found it hard to be gracious in defeat with assistant coach Aitor Karanka saying a disallowed goal early in the second-half by Madrid striker Gonzalo Higuain supported coach Jose Mourinho's controversial claims that Barcelona were favoured by referees.
"I think that after all that has been said this week, everyone saw what we had been going on about today (with regard to Higuain's goal)," said Karanka, who stood in for Mourinho in the dugout as he was suspended after being sent from the bench last week.
"There is no need to say any more than that, millions of people saw it."
Mourinho chose to stay at the team hotel and watch the match on television.
Barcelona as expected started both Iniesta and Carles Puyol, who were passed fit with the latter filling in at left back for his 100th Champions League appearance for the club.
The Real players knew that they had to hassle Xavi Hernandez and Andres Iniesta to prevent them finding their passing range but when they did get the ball to Lionel Messi and Pedro they had the pace and trickery to do damage.
Ricardo Carvalho who missed the first leg through suspension went in the book after 11 minutes for bringing down Messi as he tore through the Real half, while there were several other borderline yellow card challenges.
An unmarked Sergio Busquets headed straight at 'keeper Iker Casillas from a corner but generally the game was simmering and it was Messi who threatened to bring it to the boil in the run up to half time.
The Real defenders were bunching up as they tried to halt his forays and he tested Casillas with a couple of shots from the edge of the area. The shot-stopper then made an excellent stop to deny a curling David Villa strike.
After the break Real attacked with renewed vigour and Barça were looking edgy. In a strange decision by the referee Higuain's goal was ruled out for a foul by Ronaldo on Mascherano although he himself had been pushed by Gerard Pique.
The slippery conditions were also making it difficult for the Barca defence but the more Real attacked the greater chance they would be caught on the counter-attack and that is what happened.
Dani Alves ran down the wing and played the ball inside to Iniesta who found Pedro with a brilliant through ball and he finished calmly with just the keeper to beat.
The contest looked over but Real kept pushing and got their reward when Marcelo swept the ball home.
Di Maria nutmegged Mascherano and while he was unlucky to see his shot come back off the post, he kept his composure to set up Marcelo.
Barca played out the final minutes in control and there was even the chance for coach Pep Guardiola to bring on defender Eric Abidal in the final minutes. The Frenchman is returning to full fitness after having an operation to remove a tumour from his liver.
What the stars mean:
★ Poor ★ ★ Promising ★★★ Good ★★★★ Very good ★★★★★ Exceptional