Barcelona needed a 71st-minute Pedro Rodriguez strike to qualify for the Champions League semi-finals at the expense of Paris Saint-Germain, while Bayern Munich also progressed after proving too strong for Juventus.
After drawing 2-2 in last week's quarter-final first leg in Paris, Barcelona went behind for the first time in the tie when Javier Pastore struck shortly after half-time, but the introduction from the bench of Lionel Messi lifted the Catalans, and Pedro struck to level the scores on the night and make the final aggregate score 3-3.
While Barcelona advance to a sixth consecutive Champions League semi-final on away goals, Bayern were comprehensive winners against Juventus, with Mario Mandzukic and Claudio Pizarro netting in the second half to give the Bavarians a 2-0 victory on the night and a 4-0 triumph on aggregate.
Coming into the second leg, Barca held the upper hand thanks to their two away goals in Paris, but the absence of Messi from their starting line-up handed their opponents a psychological advantage.
The Argentine suffered a hamstring injury in the first leg and was only deemed fit enough for a place on Barcelona's bench at kick-off.
As he nervously looked on, PSG played exceptionally well in the first half and were unlucky not to score on several occasions, with Victor Valdes making crucial saves to deny Lucas and Ezequiel Lavezzi.
The Ligue 1 leaders did score five minutes into the second half, though, Pastore finishing past Valdes after linking up superbly with former Barcelona forward Zlatan Ibrahimovic.
The home side were missing the inspiration of Messi, and the Camp Nou was given a huge lift when he replaced Cesc Fabregas in the 62nd minute.
Even when far from fully fit, Messi's mere presence can make the difference, and he helped create the decisive goal less than 10 minutes after coming on.
Messi accelerated towards the Paris penalty area and laid the ball off for David Villa, who teed up Pedro to power a shot beyond Salvatore Sirigu, ending PSG's hopes and keeping Barca on course to win the Champions League for the fourth time in eight seasons.
"We're very happy," said Pedro. "PSG are great rivals and it took us a while to get into our rhythm at the start.
"Messi was the catalyst. We changed after he came on and we have to thank him for that."
PSG coach Carlo Ancelotti added: "I thought we played well. We caused Barca problems, but Messi is a fantastic player and can find a solution for his team even when not fully fit."
Bayern travelled to Turin in a strong position thanks to their 2-0 first-leg victory, and with the wind in their sails after clinching the Bundesliga title in record quick time last weekend.
Andrea Pirlo came close from a first-half free-kick and Fabio Quagliarella tested visiting keeper Manuel Neuer early in the second half as Juve sought a way back into the tie.
But they were left with too much to do when Mandzukic headed in from close range on 64 minutes.
Bayern then put the seal on a 4-0 aggregate victory when Bastian Schweinsteiger set up substitute Pizarro to make it 2-0 on the night in injury time.
"It wasn't easy to motivate the players four days after winning our national title," admitted Bayern coach Jupp Heynckes.
"We struggled in the first 20 minutes, but slowly took control of the match. We were much better in the second half and deserved to go through."
"We have no regrets," said Juve keeper Gianluigi Buffon. "We played as well as we could, but it just wasn't enough."
Bayern and Barcelona complete an all-German and Spanish semi-final line-up after Borussia Dortmund and Real Madrid clinched their berths in the last four on Tuesday.
Madrid lost 3-2 to Galatasaray in Istanbul, but progressed 5-3 on aggregate, while Dortmund beat Malaga 3-2 in dramatic circumstances to win by the same score on aggregate.
Trailing 2-1 going into stoppage time in Germany, Dortmund appeared to be heading out, but Marco Reus and Felipe Santana both scored at the death to take the Bundesliga side through to Friday's semi-final draw.