Danmark kontrollerade matchen i stora drag, men de avslutande minuterna bjöd på en del dramatik.
Spanske målvakten Gonzalo Perez de Vargas Moreno spikade igen och gav spanjorerna chansen att ta sig tillbaka. Fyramålsledningen som danskarna hade inledningen av den andra halvleken krympte till ett ynka mål med fem minuter kvar att spela.
Men Danmark stod pall och när Mikkel Hansen skickade in sitt elfte mål i matchen på straff hade spanjorerna ingen chans att att ta sig tillbaka.
Danmark är finalklart och där väntar Frankrike som besegrade Egypten med 27–23 tidigare under torsdagen. Finalen spelas klockan 14 på lördag svensk tid. Spanien får möta Egypten i bronsmatchen klockan 10 samma dag.