Den danska ledningen var fem mål i paus efter storspel av Niklas Landin Jacobsen som hade en räddningsprocent på hela 50 efter semifinalens första 30 minuter.
Danmark höll ledningen i starten av den andra halvleken – men sedan vaknade spanjorerna. Fyra raka mål betydde 19-20 och Spanien hade skapat ny nerv i matchen.
Det spanska laget hade också 20-21 innan Danmark lyckades skapa nytt andrum. Med 5.30 kvar av matchen satte danskarna 24-20 och var på god väg att säkra finalplatsen.
”De var bättre i dag”
Men när Mikkel Hansen missade straff med 1.10 kvar och ställningen 25-23 öppnade det för en dramatisk avslutning.
Spanien fick också ett jätteläge att reducera men då klev Landin Jacobsen fram. Den danska stjärnmålvakten räddade en spansk straff och i stället för 25-24 kunde Danmark sätta 26-23 vilket blev slutresultatet.
– De var bättre i dag, så enkelt är det, säger Spaniens Ángel Fernández till Viaplay.
Landin Jacobsen landade på 39 i räddningsprocent, något bättre än Spaniens Gonzalo Pérez de Vargas som verkligen spelade upp sig under matchens gång och såg till att Spanien fick kontakt igen.
I finalen väntar vinnaren i semifinalen mellan Sverige och Frankrike som spelas 21.00 i kväll.