Spain's two biggest clubs will go head to head in the Copa del Rey final after Gerardo Martino's men edged past the Basque side on Wednesday night
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 club career.
The 26-year-old moved level with the figure set by Athletic Bilbao's Telmo Zarra for scoring the most goals with a single Spanish club.
Antoine Griezmann grabbed an equalizer on the night to preserve Sociedad's pride, but it was unable to reach a first Copa final since 1988, as Barca will face Liga title rival 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 the Blaugrana dominated. 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 men showed an uncharacteristically direct side to their play 20 minutes in as Dani Alves hit a dipping effort from distance, which forced 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 center 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 its 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 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 - its 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 its great rival 1-0 after extra time.