Roberto Di Matteo's team defended brilliantly throughout, and will now travel to Munich on May 19 despite playing the majority of the match with 10 men.
The Catalans appeared to be home and dry after goals by Sergio Busquets and Andres Iniesta either side of a John Terry red card appeared to put the Blues out of the competition before half-time.
However, Ramires put the tie back into Chelsea's hands with a fantastic effort just before the interval.
Lionel Messi missed a penalty early in the second-half, and the Blues combined superb defending with a bit of luck, before Fernando Torres put the icing on the cake by finishing off a counterattack at the death.
With a 1-0 deficit to overcome after the first encounter in London, Barca coach Pep Guardiola began with an attacking 3-4-3 formation.
It took them only three minutes to carve out the first chance of the match, with Lionel Messi blasting into the side netting after rapid interplay with Alexis Sanchez.
The game plan from Di Matteo was simple as Chelsea, much as they had done in the first leg, looked to defend deep in numbers and relieve pressure on the counter whenever they could.
However, they were forced into a change after only 12 minutes as Gary Cahill was hauled off through injury for Jose Bosingwa.
Barca continued to control the game, and opened Chelsea up once more with a delightful passing move, with only the legs of Petr Cech preventing Messi from opening the scoring.
Cesc Fabregas and Didier Drogba each found the side netting before Javier Mascherano sent an unlikely 25-yard piledriver just over the bar as the home side continued to search for a way through.
The hosts were forced to bring on Dani Alves after 26 minutes for Gerard Pique, who failed to recover sufficiently from an earlier clash of heads with Victor Valdes.
The Brazilian played a part in the opener 10 minutes after his arrival, releasing Isaac Cuenca down the left, whose cutback evaded multiple bodies before Busquets tapped in.
It went from bad to worse for Chelsea, as they found themselves reduced to 10 men within two minutes. Terry appeared to knee Sanchez in the back off the ball, and was shown a straight red card by the referee.
Barca took advantage of their superior numbers, and struck again two minutes before half-time. Messi caused panic with a run at the defence before slipping in Iniesta, who slotted into the corner.
But rather than implode, as so many teams have done against the Catalans, Chelsea responded, out of nowhere, in some style.
A punt from defence by Frank Lampard was latched onto by Ramires, who guided a delightful lob over Valdes to send the Londoners into the break with the advantage on away goals.
Barca were handed a chance to regain the aggregate lead three minutes after the restart, with an apparent trip on Fabregas by Drogba in the box was spotted by the officials, leading to a penalty.
However, Chelsea’s advantage was left intact as Messi smacked the spot-kick off the crossbar.
Sanchez headed an Alves cross just wide and Cuenca was blocked at the last by Cech, as Barca set up camp in the opposition half for the remainder of the match.
But it was proving to be the same story as the first leg, as Chelsea’s doggedness at the back was just enough to keep Guardiola’s men at bay.
They were almost caught out 10 minutes before the end though, but Messi could only strike the post after being put clear with only the keeper to beat.
But the Catalans were out of ideas in attack, and were finished for good by substitute Torres in the final minute of injury time. With almost every Barca player committed in the opposition half, the Spaniard latched onto a pass from defence by Ashley Cole, rounded Valdes and fired home.
Chelsea continue their incredible renaissance under Di Matteo, and will await either Real Madrid or Bayern Munich in the final at the Allianz Arena on May 19.