Sverige har inte nått semifinal i VM sedan guldåret 2017.
Nu såg det ut som om svenskarna ändå skulle ta steget – men Kanadas spurt blev övermäktig.
Allt började med att Rasmus Dahlin olyckligt lyfte pucken upp på läktaren och blev utvisad.
Med en sekund kvar av utvisningen reducerade Pierre-Luc Dubois till 2–3 och 30 sekunder senare, med målvakten utplockad, kvitterade Matt Barzal.
Sedan blev William Nylander utvisad i förlängningen efter en tripping – och Drake Batherson avgjorde efter 43 sekunder.
– Det är klart att det svider. Med tanke på hur vi spelade i två perioder och har en 3–0-ledning så är det fruktansvärt surt. Vi visste att det skulle bli en tuff match. Vi backade av lite för mycket, säger Oliver Ekman-Larsson.
Svensk blixtöppning
Bara 87 sekunder hade spelats när Carl Klingberg kanonsköt 1–0 över axeln på kanadensiske målvakten Chris Driedger. Det var Klingbergs första mål i turneringen.
– Jag tycker att vi ser starka ut. Att få ledningen är skitviktigt, sade Klingberg till Viaplay i en pausintervju.
Efter 7.04 slog Torontostjärnan William Nylander till med 2–0, hans tredje mål i turneringen. Joakim Nordström täckte skott i egen zon vilket blev till en frispelning och Nylander var iskall och smekte in pucken i Driedgers vänstra kryss.
Ett skott – ett mål
Sverige dominerade öppningsperioden stort och vaskade fram mängder med chanser. Lucas Wallmark, målskytt när Sverige slog Kanada i OS-kvartsfinal i februari, borde ha gjort 3–0 när han fick öppet mål – men skottet gick i burgaveln.
I den andra tog Kanada över totalt och vann skottstatistiken med overkliga 19–1.
Ändå gjorde Max Friberg periodens enda mål fram till 3–0 på en styrning.
Det kan svenskarna främst tacka Bostonmålvakten Linus Ullmark för som var lugnet själv i skottregnet och klarade allt.
När periodvisslan ljöd hade Ullmark hållit nollan i fem raka perioder, han vaktade ju också kassen i gruppavslutningen mot Lettland, 1–0.
"Vet inte vad jag ska säga"
Men i början av tredje perioden fick den svenske målvakten till slut ge sig när Ryan Graves hittade rätt från sin backposition.
Sedan kom 3–2 genom Pierre-Luc Dubois med knappt två minuter kvar sedan Rasmus Dahlin åkt ut efter att ha lyft pucken upp på läktaren.
Kanada tog ut målvakten och tryckte på i slutet och Matt Barzal kvitterade när han lyfte in en backhand mellan benskydden på Ullmark.
Och till slut kom avgörandet.
– Sättet vi förlorar på, jag vet inte vad jag ska säga, jag är besviken, säger Ekman-Larsson.
Därmed är Johan Garpenlövs tid som förbundskapten över.
– Det är en fantastisk människa och en bra coach. Vi ville verkligen spela för honom, säger Oliver Ekman-Larsson.