Chelsea's hopes looked all but over after going down 2-0 and having John Terry sent off for a needless foul in the first half, but Ramires' audacious lob right before halftime gave the advantage back to the Blues on aggregate.
After Lionel Messi blasted a penalty off the crossbar in the 59th and hit the post with another shot, substitute Fernando Torres netted in injury time to make it 3-2 on aggregate and ensure that Chelsea reached the May 19 final at Allianz Arena in Munich.
Chelsea won the first leg 1-0 at Stamford Bridge last week after Didier Drogba scored with the hosts' only shot on target amid a series of wasted chances by Barcelona.
It is Chelsea's first Champions League final since losing to Manchester United on penalties four years ago, and gives owner Roman Abramovich another chance to finally capture the elusive title in Europe's premier club competition.
Bayern Munich leads Real Madrid 2-1 in the other semifinal going into the second leg in Spain on Wednesday.
Sergio Busquets and Andres Iniesta had put Barcelona up 2-0 by the 44th as the Spanish club once again dominated possession from the start. In between those goals, Terry was given a straight red card for putting his knee into the back of Alexis Sanchez, making a Chelsea fightback look even more unlikely.
But just like at Stamford Bridge, Chelsea proved very opportunistic once it created a rare counterattack.
Ramires ran onto a long pass to send an impressive lob over Victor Valdes to calm Chelsea's nerves and boost the visitors morale as they headed back into the dressing room.
Barcelona's inability to convert its possession advantage into goals was symbolized by Messi's rare miss from the spot in the 49th, as the Argentina winger has now been held scoreless in seven meetings against Chelsea.
Messi hasn't scored in his last three games, after netting 63 times previously this season.
Chelsea, which was eliminated by Barcelona in the 2009 semifinals after a contentious second leg, will be missing four players for the Munich final after Ramires, Branislav Ivanovic and Raul Meireles were all booked.