Copa del Rey: Real Sociedad 1 Barcelona 1 (1-3 agg)
Leading 2-0 from the first leg, Barcelona's passage into the showpiece was never in doubt after Messi made early pressure count with a run from the halfway line that ended with him finding the net for the 335th time in his Barcelona career.
The 26-year-old moved level with the figure set by Athletic Bilbao's Telmo Zarra for scoring the most goals for a single Spanish club.
Antoine Griezmann grabbed an equaliser on the night to preserve Sociedad's pride, but they were unable to reach a first Copa final since 1988, where Barca will face Liga title rivals Real Madrid.
Gerardo Martino's side welcomed back the previously suspended Javier Mascherano and Jordi Alba, but they had little to do early on as Barcelona dominated and an in-swinging cross from Andres Iniesta was on a plate for a Pedro tap-in but Jose Angel's acrobatic clearance prevented a certain goal.
Sociedad's first sight of goal came after 15 minutes when Sergio Busquets' headed clearance only reached David Zurutuza, whose volley flashed wide.
Martino's side showed an uncharacteristically direct side to their play 20 minutes in as Dani Alves hit a dipping effort from distance, forcing Enaut Zubikarai into a smart save.
Jose Angel made the grave error of giving the ball away after 26 minutes and was punished by the genius of Messi.
The Argentinian surged from the centre circle, evading the attention of five players before lashing a shot in that squirmed past the desperate Zubikarai who got a touch on it – but not enough to keep the ball out.
Pedro almost added a second when Cesc Fabregas's beautiful lobbed pass sent him clear but his volley was saved.
At the other end, Carlos Vela went close but Pinto got something on his weak shot and Alves mopped up the danger.
Sociedad made seven changes from their weekend draw with Levante and it showed as Barcelona continued to dominate. Iniesta played a sumptuous one-two with Messi after 52 minutes and the Spaniard's shot flashed just wide.
The hosts could have been level on the night moments later through Vela whose turn and shot outside the area on the right crashed back off the crossbar.
Only a terrific double save prevented Barcelona after 55 minutes when Fabegras played a lovely slide rule ball to Messi. His shot was blocked by Zubikarai and the goalkeeper made a wonder sprawling save to deny the follow-up from Fabregas.
Sociedad scored a late equaliser - their first goal in three games - when Gonzalo Castro's first time cross was met by Griezmann who lashed emphatically past Pinto.
Barcelona will meet Madrid in the showpiece - as they did in 2011 when the capital club overcame their great rivals 1-0 after extra time.