Aurélien Tchouaméni abriu o placar para os 'Bleus' com um belo chute de fora da área aos 17 minutos de jogo, antes de Harry Kane empatar no início do segundo tempo, de pênalti, com gol que o igualou a Wayne Rooney como o maior artilheiro da seleção inglesa (53 gols).
Mas no minuto 78, Olivier Giroud deu a vitória aos franceses cabeceando para as redes um cruzamento de Antoine Griezmann.
"Estou muito orgulhoso, fizemos um grande jogo. Sabíamos do potencial desta jovem geração inglesa. Eles têm tudo. Mostramos generosidade e soubemos nos impor mentalmente", comemorou Giroud depois da partida.
A Inglaterra ainda teve a chance de empatar aos 84, em nova cobrança de pênalti de Kane, mas dessa vez o atacante chutou por cima.
Depois dos primeiros minutos com ambas as equipes se estudando, a França foi a primeira a levar perigo, com um cruzamento de Ousmane Dembélé pela direita que Giroud cabeceou para a defesa de Pickford (11).
Seis minutos depois, os 'Bleus' abririam o placar numa jogada em que Griezman passou para a bola para Tchouameni e o jovem meia do Real Madrid bateu de direita no canto do goleiro inglês.
Depois do gol, as equipes se soltaram e o jogo ficou mais aberto. Aos 21, Luke Shaw chutou para a defesa de Lloris e, no minuto seguinte, Kane perdeu cara a cara a chance do empate.
- Inglaterra cresce -
O capitão inglês tentou mais uma vez, de fora da área, e Lloris mandou para escanteio (29), num momento em que a França baixou suas linhas para apostar nos contra-ataques.
Bem marcado pelo lateral Kyle Walker, Kylian Mbappé pouco apareceu no início do duelo. A primeira chance camisa 10 francês foi aos 39 minutos, mandando por cima após cruzamento de Théo Hernández.
O segundo tempo começou com um belo chute de Bellingham que Lloris mandou para escanteio em outra grande defesa (47).
Melhor no jogo, a Inglaterra foi premiada quando o árbitro brasileiro Wilton Pereira Sampaio marcou pênalti de Tchouaméni sobre Bukayo Saka e Harry Kane não perdoou (54).
O empate deu nova cara ao jogo. Os franceses responderam ao gol inglês com uma tentativa de Adrien Rabiot de fora da área que Pickford espalmou (55) e em uma jogada pela esquerda de Mbappé, que passou por Walker e cruzou na área, mas ninguém da França chegou.
Na sequência, a Inglaterra teve duas oportunidades em jogadas individuais de Saka e Kane, mas Lloris defendeu (59 e 62).
- Kane isola -
Eram os melhores minutos dos ingleses na partida, com Saka infernizando a defesa francesa. Em bola levantada na área, Harry Maguire subiu mais do que todo mundo e acertou uma cabeçada no pé da trave (69).
Os 'Bleus' responderam em uma boa jogada coletiva que terminou com Giroud recebendo cara a cara e obrigando Pickford a fazer uma defesa espetacular.
Mas três minutos depois, o camisa 9 francês não perdoou e cabeceou para as redes uma bola cruzada por Griezmann pela esquerda (78).
"Foi fabuloso, um grande jogo contra uma equipe magnífica da Inglaterra. Mais uma vez passamos de fase num duelo como este e é fantástico estar de volta às semifinais", comemorou o técnico da França, Didier Deschamps.
E o jogo que já estava eletrizante ganhou mais emoção nos minutos finais. Em jogada revisada pelo VAR, o árbitro brasileiro marcou pênalti de Théo Hernández em Mason Mount (84), que tinha acabado de entrar.
Kane foi mais uma vez para a cobrança, mas mandou a bola para as nuvens, junto com as esperanças da Inglaterra de voltar a conquistar o título mundial depois de 56 anos.
"Sabemos de todos os pênaltis que Harry marcou para nós. Ele conseguiu no primeiro. Sabemos de quantos gols ele participou para nos trazer até aqui", ressaltou o meia inglês Jordan Henderson sobre o camisa 9.
"Infelizmente não foi a nossa noite", concluiu o jogador do Liverpool.