Sverige fick en smakstart på matchen när Jesper Nielsen och Hampus Wanne satte tre mål vardera och fixade svensk tremålsledning med kvarten spelad.
Spanjorerna sprattlade till därefter och kom nära kvittering, men starkt försvarspel och en målvakt i Mikael Appelgren som var 50-procent i första halvlek gjorde att det var svensk ledning 14-12 i halvtid.
Men det blev en svensk mardrömsstart på andra halvlek. Spanjorerna bytte till ett högre försvarsspel och nådde kvittering direkt. Förbundskapten Kristján Andrésson tog timeout. Men inte blev det bättre för det.
Första medaljen på sex år
När Andrésson tog sin andra timeout tio minuter senare hade Sverige gjort ett mål på de inledande elva minuterna av andra halvlek och Spanien hade tremålsledning.
Men det gick inte att rätta det svenska skeppet. När David Balaguer satte sitt femte mål för dagen hade spanjorerna en sjumålsledning med tio minuter kvar att spela.
De spanska segersiffrorna skrevs till slut 29-23 och därmed får de svenska herrarna nöja sig med en silverpeng.
– Vi gör en jättebra första halvlek. Men vi hittar tyvärr ingen lösning på deras offensiva 5-1-försvar och förlorar mot ett bättre lag i dagsäger Mattias Zachrisson till SVT Sport.
Det är den första svenska mästerskapsmedaljen på herrsidan sedan OS 2012.