Med fyra minuter kvar av ordinarie tid, vid ställningen 19-19, blev Spaniens Raul Entrerrios Rodriguez utvisad. Ett jobbigt läge för spanjorerna då Kroatien hade hämtat upp ett fyramålsunderläge i den andra halvleken.
Trots en man utvisad gjorde Spanien 20-19. Kroatien kvitterade dock omgående.
Efter att det spanska landslaget hade blivit fulltaligt gjorde laget två sena mål. Alex Dusjhebaev, son till förre storspelaren Talant Dujshebaev, fastställde slutresultatet 22-20 med 25 sekunder kvar av EM-finalen i Tele2 Arena i Stockholm.
Det betyder att Spanien försvarade EM-titeln från 2018.
Ledde matchen med fyra poäng
Spanien hade en knapp ledning, 12-11, mot Kroatien efter den första halvleken. I början av andra halvlek ryckte spanjorerna till sig en fyramålsledning, 16-12.
Men det kroatiska landslaget jobbade sig tillbaka in i matchen. Med knappt tio minuter kvar av ordinarie tid visade resultattavlan 18-18. Efter det var Spanien som sagt starkast.
Norge tog EM-brons efter att ha besegrat Ljubomir Vranjes Slovenien med 28-20.