Argentina goalkeeper Sergio Romero saved penalties by Wesley Sneijder and Ron Vlaar to take his side through.
The South Americans play Germany in Rio de Janeiro on Sunday.
Penalties were required after the two sides were goalless after extra time, the first ever World Cup semi-final to produce no goals after 120 minutes.
Argentina went through after Maxi Rodriguez converted their fourth and decisive spot-kick to add to those converted by Messi, Ezequiel Garay and Sergio Aguero.
This will be the third time Argentina have faced Germany in the World Cup final after 1986 and 1990.