19-årige Larsson var blott en hundradel före tvåan Oliver Bromby i det jämna fältet, där fem löpare kom i bredd på slutet. Mellan de fem första skilde sju hundradelar.
– Jag var ganska nervös och kom inte riktigt iväg som jag ville i starten men fick sedan tryck den sista biten, säger Larsson till innerplansspeakern.
Han skrek ut sin glädje efter målgången i solskenet i Gävle.
Vill försvara titeln om två år
Larsson fyller 20 senare i höst och kan ställa upp i samma klass i UEM om två år.
– Jag vill försvara titeln då, säger Larsson till europeiska friidrottsförbundet. Han hade försök på 200 m kvar under kvällen. Larsson sprang in som fyra på 21,28 efter att ha sneglat i sidled under loppet för att ta den sista säkra platsen i heatet till en semifinal.
Larssons personliga rekord lyder på 10,18 från tidigare i sommar. Medvinden var +2,2 m/sek (upp till 2,0 tillåtet).
Guldet är det första svenska genom tiderna på 100 m av en svensk senior eller junior, man eller kvinna. Lennart Strandberg tog EM-brons 1938, Ullevis Emil von Barth tog U20-EM-brons i Eskilstuna 2015 och Henrik själv tog silver i ungdoms-EM 2016, uppger Friidrott.se.
Wictor Petersson tog Sveriges andra medalj genom att bli trea i kula. Han stötte 19,53 och höll den ganska skakiga tredjeplatsen. Storfavoriten Konrad Bukowiecki, Polen, vann på 21,51.
Resultat 100 m U23-EM
1) Henrik Larsson, Sverige, 10,23
2) Oliver Bromby, Storbritannien, 10,24
3) Joris van Gool, Nederländerna, 10,27
4) Kevin Kranz, Tyskland, 10,28
5) Marvin Schulte, Tyskland, 10,30
6) Dominic Ashwell, Storbritannien, 10,37
8) Austin Hamilton, Sverige, 14,70 (skadad efter 70 meter)