The two-time world champions, backed by a huge majority of the crowd at the Lusail Stadium, produced their best display of the tournament to ensure they will meet the winners of Wednesday's semifinal clash between holders France and Morocco in Sunday's final.
Messi, 35, who suffered a defeat to Germany in the 2014 final, is desperate to crown his extraordinary career by winning his first World Cup and bringing Argentina a third title to add to those won in 1978 and 1986.
And after getting his team on the way to victory with a perfectly struck first-half penalty he made sure of the win by brilliantly creating the third goal.
Croatia, runners-up in Russia four years ago, paid the price for some untypically poor defending as they went out in the last four for the second time after their 1998 loss to France in their maiden tournament.
It was not until the 25th minute when the game showed signs of life with a low pot shot from outside the box by Enzo Fernandez but Croatia keeper Dominik Livakovic did well to get across and keep it out.
It was a tight affair but then a simple lofted ball over the top from Fernandez caught out the Croatian defence, Alvarez latched on to it, knocking the ball past the advancing Livakovic who collided with the striker and Italian referee Daniele Orsato pointed to the spot.
Livakovic guessed correctly that Messi would go to his left but his dive was in vain as the Argentine's sweetly struck drive flew high into the net to put his side 1-0 up in the 34th minute.
It was Messi's fifth goal of the tournament, making him joint top-scorer with France's Kylian Mbappe. His 11th career goal – in a record-equalling 25th World Cup appearance – also took him past Gabriel Batistuta as Argentina's all-time World Cup top scorer.
Five minutes later, Argentina doubled their lead when, after a break from a corner, Alvarez picked the ball up inside his own half and began a long dribble goalwards.
With the Croatian defence backing off, Alvarez rode weak challenges from Josip Juranovic and Borna Sosa and then slipped the ball past Livakovic to send the heavily Argentine crowd into delirium.
Messi saved his best for last though, tormenting Josko Gvardial down the right before leaving the 20-year-old defender behind and pulling the ball back to Alvarez who coolly slotted home.
Croatia were finished but it was clear that Argentina and Messi are peaking just in time for the biggest game of their lives.