Both sides had to make changes at the heart of defence as Gary Cahill and Gerard Pique suffered injuries with Jose Bosingwa and Dani Alves coming on earlier than expected.
Barca took the lead with 10 minutes of the half remaining when Sergio Busquets tapped home at the back post.
Minutes later Blues captain John Terry was sent off for kneeing Alexis Sanchez in the small of the back.
The home side then went two ahead on the night when Messi found Andres Iniesta who took one touch before rolling past Cech.
Chelsea knew all they had to do was not concede in the second 45 but Barca had the perfect opportunity to go ahead in the tie minutes after the resumption when Drogba brought down Fabregas in the area.
However, Messi smacked his spot kick against the crossbar and Chelsea survived.
The remainder of the game was spent in Chelsea's half as Barca patiently probed for a way through.
Messi hit the woodwork again with 10 minutes remaining after cutting inside onto his left foot before Chelsea somehow got a goal themselves.
As Barca pushed for a winner substitute Fernando Torres was sent free with no defenders in the hosts' half. The Spanish forward kept his composure and rounded Valdes to cap off a remarkable affair.
The Blues will take on either Bayern Munich or Real Madrid in next month's final.