Sverige var rejält skadeskjutet med Johan Jakobsson, Albin Lagergren och Simon Jeppsson på skadelistan till semifinalen mot Danmark.
Men det märktes inte när de tyska domarna blåste igång matchen. Sverige ryckte direkt och Linus Arnesson kom in från bänken och glänste.
När Bergischer-spelaren satte sitt tredje mål för dagen var Sverige i femmåls-ledning 15-10.
Danskarna bytte snabbt till ett 5-1-försvar och hittade in i matchen. Och PSG-stjärnan Mikkel Hansen såg med sina sex mål till att Sveriges ledning bara var 16-14 i halvtid.
I inledningen av andra halvlek kunde Sverige göra ett nytt ryck till femmåls-ledning när Andreas Palicka storspelade i målet och Niclas Ekberg fick ordning på straffskyttet.
Zachrisson avgjorde
Men Hansen fortsatte att göra mål – elva totalt – och till slut hämtade Danmark ikapp till likaläge 25-25 med fem minuter kvar att spela och med Jim Gottfridsson utvisad.
Då klev Mattias Zachrisson fram med två raka viktiga mål och Sverige hade ett jätteläge att spela ut tiden vid ledning 28-27. Men Jerry Tollbring tog skott med åtta sekunder kvar och Lasse Svan hann sätta en dansk kontring till 28-28 i sista sekunden och tvingade fram en förlängning.
Trots den psykologiskt tunga kvitteringen orkade Sverige resa sig. Zachrisson satte ytterligare två mål i förlängningen och Palicka fortsatte att rädda skott. Till slut kunde Sverige säkra finalplatsen med segersiffrorna 35-34.
Därmed är Sverige klart för en sensationell EM-final – den första svenska EM-finalen på 16 år.
– Det här visar vilken bredd och lagmoral vi har i det här laget. Vi är ett ungt lag och har mycket kvar att ge. Men att vi redan är i EM-final är helt otroligt, säger Zachrisson till SVT Sport.
I söndagens final klockan 20.30 väntar nu Spanien – som slog ut Frankrike tidigare i kväll.