Semifinalen i Dallas blev en taktisk triumf för Luis de la Fuente vars lag helt raderade ut det lekfulla och offensiva fotboll fransmännen visat upp på vägen till semifinalen.
Storstjärnan Kylian Mbappé hade ständigt två försvarare emot sig och kom ingenstans.
– Den här spelargruppen är exceptionell. Vi har fortfarande ett steg kvar att ta. Det har samlats mycket anspänning, och det är ett stort ansvar att vara i final – det är en lyx. Vi måste smälta allt det här nu, säger de la Fuente efter matchen, enligt RMC Sport.
Dubbla smällar
Dessutom åkte Frankrike på två tuffa smällar redan i den första halvleken som satte stor prägel på matchen.
I den 20:e minuten fick Spanien straff sedan Lucas Digne sparkade Lamine Yamal på höften när han skulle rensa bort bollen i straffområdet.
Straffen satte Mikel Oyarzabal välplacerat bakom den franske målvakten Mike Maignan. Målet var Oyarzabals femte i VM.
Nästa smäll kom sex minuter senare då den franske mittbacken William Saliba plötsligt satte sig ned på mittlinjen skadad. Saliba var tvungen att lämna planen.
Frankrike uppträdde nervöst inledningsvis, nervositet som övergick till frustration.
Spaniens andra final
Och inte blev det bättre i den andra halvleken. Spanien fortsatte att avväpna fransmännen och i den 58:e minuten kom nästa mål. Pedro Porto väggspelade med Dani Olmo och kunde sen skjuta 2–0, spanjorens andra i VM.
– Det är en dröm som går i uppfyllelse, jag kunde inte ens föreställa mig det här i mina vildaste drömmar, säger Porro till La 1, enligt Marca.
Spanien fortsatte dominansen och ett tredje spanskt mål var närmare än ett franskt flera gånger.
Det var först på tilläggstid som Frankrike noterade sina enda två skott på mål på hela matchen.
Spanien har bara varit i en VM-final tidigare. Det var 2010 i Sydafrika då Nederländerna besegrades efter förlängning med matchens enda mål.
VM-finalen avgörs på söndag kväll med start klockan 21.00. Spanien möter segraren mellan England och Argentina. För Frankrike väntar bronsmatch på lördag.