Vancouver CanucksVAN 3–7 Final Calgary FlamesCGY

Saturday, March 28, 2026

Final 1st2nd3rd T SOG
Vancouver CanucksVAN 111 3 34
Calgary FlamesCGY 241 7 23
Playoff odds, % Change
CGY +0.0
VAN +0.0

How the result moved each team's playoff odds, calculated Mar 28, 2026 9:57 PM EDT.

Highlights

Scoring

1st Period
3:04 CGY Matt Coronato (17) Zayne Parekh (4), Morgan Frost (19) · wrist xG 0.05 0–1 ▶
4:59 CGY Joel Farabee (17) Zach Whitecloud (11), Mikael Backlund (24) · tip-in xG 0.06 0–2 ▶
18:53 VAN Liam Ohgren (8) Linus Karlsson (18), Elias Pettersson (29) · snap xG 0.30 1–2 ▶
2nd Period
1:32 CGY Ryan Strome (6) Olli Maatta (9), Yegor Sharangovich (13) · tip-in xG 0.05 1–3 ▶
4:36 CGY Olli Maatta (2) Ryan Strome (12), Hunter Brzustewicz (3) · poke xG 0.48 1–4 ▶
4:47 CGY Morgan Frost (18) Matt Coronato (21), Matvei Gridin (10) · backhand xG 0.04 1–5 ▶
13:36 VAN Jake DeBrusk (16)PP Brock Boeser (21), Elias Pettersson (30) · tip-in xG 0.12 2–5 ▶
19:23 CGY Zayne Parekh (2)PP Matt Coronato (22), Morgan Frost (20) · wrist xG 0.10 2–6 ▶
3rd Period
12:40 VAN Nils Hoglander (2) Victor Mancini (1), Zeev Buium (18) · tip-in xG 0.12 3–6 ▶
19:52 CGY Adam Klapka (6)PP Brennan Othmann (1), Hunter Brzustewicz (4) · wrist xG 0.15 3–7 ▶

Score away–home after each goal; season totals in parentheses.

Shot quality

Expected goals (xG) rate every unblocked shot by how often shots like it go in, from where it was taken, the shot type, the strength and what happened just before it. How it works

VAN 64%Deserve to win36% CGY
VANCGY
2.93Expected goals2.15
3Goals (no shootout)7
2.34Expected goals, 5 on 51.69
61Shot attempts42
49Unblocked attempts30
34Shots on goal23

Game notes

What stood out as the game went on, from the play-by-play and the shifts. Time on the bench is counted in 5-on-5 play outside the penalty box; the note says the player sat, not why. Goals saved are against the shots' expected goals (xG).

2nd Period
1:32 VAN Goalie Goalie · Tolopilo −2.4 goals saved
3 goals on 0.55 xG, 8 shots on goal
4:36 VAN Goalie change Goalie change · Lankinen in for Tolopilo
4:36 of the 2nd; Tolopilo had allowed 4 goals on 11 shots (1.10 xG)

Shot map

VAN shoots ←Bigger circle: higher xG; filled: goal→ CGY shoots
Matvei Gridin: wrist, 14 ft, xG 0.10 (P1 2:46) Zayne Parekh: wrist, 42 ft, xG 0.04 (P1 3:02) Liam Ohgren: wrist, 97 ft, xG 0.00 (P1 4:23) Liam Ohgren: snap, 38 ft, xG 0.07 (P1 4:29) Zeev Buium: wrist, 61 ft, xG 0.01 (P1 4:36) Mikael Backlund: wrist, 34 ft, xG 0.01 (P1 4:53) Drew O'Connor: deflected, 9 ft, xG 0.12 (P1 6:17) Drew O'Connor: wrist, 8 ft, xG 0.05 (P1 6:17) Ryan Strome: wrist, 35 ft, xG 0.04 (P1 7:06) Blake Coleman: wrist, 35 ft, xG 0.04 (P1 8:10) Evander Kane: wrist, 32 ft, xG 0.07 (P1 8:46) Evander Kane: snap, 34 ft, xG 0.06 (P1 9:09) Liam Ohgren: slap, 41 ft, xG 0.05 (P1 9:29) Pierre-Olivier Joseph: slap, 52 ft, xG 0.03 (P1 9:40) Zeev Buium: wrist, 53 ft, xG 0.02 (P1 11:31) Tyson Gross: wrist, 98 ft, xG 0.00 (P1 11:50) Pierre-Olivier Joseph: wrist, 54 ft, xG 0.01 (P1 12:05) Matvei Gridin: wrist, 25 ft, xG 0.10 (P1 12:59) Victor Olofsson: tip-in, 15 ft, xG 0.06 (P1 13:35) Victor Mancini: wrist, 57 ft, xG 0.01 (P1 16:51) Marco Rossi: tip-in, 23 ft, xG 0.07 (P1 17:11) Filip Hronek: wrist, 46 ft, xG 0.02 (P1 19:49) Victor Mancini: wrist, 155 ft, xG 0.00 (P2 2:16) Tyson Gross: backhand, 11 ft, xG 0.05 (P2 2:28) Elias Pettersson: wrist, 32 ft, xG 0.09 (P2 3:22) Ryan Strome: wrist, 53 ft, xG 0.02 (P2 4:33) Tom Willander: wrist, 49 ft, xG 0.01 (P2 5:11) Victor Mancini: slap, 59 ft, xG 0.04 (P2 5:16) Aatu Räty: wrist, 16 ft, xG 0.03 (P2 5:17) Adam Klapka: tip-in, 11 ft, xG 0.01 (P2 5:39) Joel Farabee: wrist, 43 ft, xG 0.01 (P2 5:56) Brock Boeser: wrist, 28 ft, xG 0.07 (P2 6:47) Drew O'Connor: snap, 24 ft, xG 0.08 (P2 8:03) Evander Kane: backhand, 6 ft, xG 0.07 (P2 8:23) Jake DeBrusk: backhand, 8 ft, xG 0.05 (P2 8:24) Teddy Blueger: wrist, 54 ft, xG 0.02 (P2 8:40) Ryan Strome: wrist, 35 ft, xG 0.12 (P2 8:56) Elias Pettersson: wrist, 23 ft, xG 0.02 (P2 10:12) Marcus Pettersson: wrist, 66 ft, xG 0.01 (P2 12:04) Elias Pettersson: wrist, 42 ft, xG 0.04 (P2 12:14) Brock Boeser: snap, 34 ft, xG 0.10 (P2 13:28) Tyson Gross: tip-in, 25 ft, xG 0.02 (P2 14:23) Adam Klapka: wrist, 37 ft, xG 0.04 (P2 14:45) Jake DeBrusk: wrist, 44 ft, xG 0.02 (P2 16:38) Evander Kane: wrist, 43 ft, xG 0.01 (P2 16:48) Teddy Blueger: wrist, 43 ft, xG 0.02 (P2 18:31) Blake Coleman: backhand, 22 ft, xG 0.07 (P2 18:48) Elias Pettersson: deflected, 8 ft, xG 0.12 (P2 19:44) Liam Ohgren: wrist, 21 ft, xG 0.10 (P2 19:46) Victor Olofsson: wrist, 38 ft, xG 0.02 (P3 1:00) Yegor Sharangovich: tip-in, 37 ft, xG 0.05 (P3 1:08) Tom Willander: wrist, 49 ft, xG 0.03 (P3 1:28) Teddy Blueger: snap, 25 ft, xG 0.14 (P3 1:50) Linus Karlsson: wrap-around, 7 ft, xG 0.05 (P3 2:03) Elias Pettersson: wrist, 15 ft, xG 0.05 (P3 2:15) Marco Rossi: wrist, 30 ft, xG 0.03 (P3 3:42) Brennan Othmann: wrist, 42 ft, xG 0.01 (P3 4:28) Evander Kane: snap, 11 ft, xG 0.13 (P3 5:04) Drew O'Connor: slap, 26 ft, xG 0.04 (P3 7:16) Tom Willander: wrist, 35 ft, xG 0.08 (P3 7:26) Yegor Sharangovich: wrist, 9 ft, xG 0.16 (P3 8:38) Olli Maatta: tip-in, 21 ft, xG 0.07 (P3 8:52) Adam Klapka: wrist, 14 ft, xG 0.14 (P3 9:17) Brayden Pachal: wrist, 38 ft, xG 0.03 (P3 10:09) Brock Boeser: wrist, 22 ft, xG 0.06 (P3 10:39) Teddy Blueger: tip-in, 8 ft, xG 0.12 (P3 13:10) Jake DeBrusk: wrist, 41 ft, xG 0.01 (P3 14:24) Elias Pettersson: slap, 30 ft, xG 0.10 (P3 17:26) Brock Boeser: tip-in, 18 ft, xG 0.08 (P3 17:40) Matt Coronato: GOAL, wrist, 26 ft, xG 0.05 (P1 3:04) Joel Farabee: GOAL, tip-in, 13 ft, xG 0.06 (P1 4:59) Liam Ohgren: GOAL, snap, 14 ft, xG 0.30 (P1 18:53) Ryan Strome: GOAL, tip-in, 17 ft, xG 0.05 (P2 1:32) Olli Maatta: GOAL, poke, 6 ft, xG 0.48 (P2 4:36) Morgan Frost: GOAL, backhand, 19 ft, xG 0.04 (P2 4:47) Jake DeBrusk: GOAL, tip-in, 8 ft, xG 0.12 (P2 13:36) Zayne Parekh: GOAL, wrist, 32 ft, xG 0.10 (P2 19:23) Nils Hoglander: GOAL, tip-in, 16 ft, xG 0.12 (P3 12:40) Adam Klapka: GOAL, wrist, 13 ft, xG 0.15 (P3 19:52)
About these numbers

xG comes from hockeystats.io's own model, a gradient-boosted tree model trained on every unblocked shot from the 2021-22 to 2025-26 regular seasons using the NHL's public play-by-play. Each shot's value is the share of similar shots that became goals. A team's xG is the sum over its shots; "deserve to win" asks how often the team would outscore its opponent if every shot went in at exactly that rate. Blocked shots count as attempts but have no xG (the NHL records where they were blocked, not where they were taken), so the map leaves them out.

Box score

Vancouver Canucks

Skater GAP+/− AttxG HitBlkTOI
Forwards
6 Brock Boeser 011 -1 60.31 0022:34
40 Elias Pettersson 022 0 80.42 1119:17
23 Marco Rossi 000 -1 20.10 4018:27
94 Linus Karlsson 011 0 10.05 1018:05
92 Liam Ohgren 101 -1 50.53 0117:51
18 Drew O'Connor 000 -1 50.28 3017:09
73 Teddy Blueger 000 -2 50.30 2014:44
74 Jake DeBrusk 101 -2 50.20 1013:24
91 Evander Kane 000 -2 50.33 3013:19
54 Aatu Räty 000 0 10.03 2011:50
21 Nils Hoglander 101 +1 10.12 0007:42
42 Curtis Douglas 000 0 00.00 2006:30
Defense
17 Filip Hronek 000 -3 20.02 2226:13
8 Zeev Buium 011 -1 30.03 1123:57
5 Tom Willander 000 -1 30.11 5218:10
26 Marcus Pettersson 000 -2 10.01 1217:57
90 Victor Mancini 011 +1 40.04 2216:00
7 Pierre-Olivier Joseph 000 0 40.04 2115:02
Goalie SAGA SVSV% xGA GSAx
Nikita Tolopilo 1147 .636 1.10 -2.90
Kevin Lankinen 1239 .750 1.05 -1.95

Calgary Flames

Skater GAP+/− AttxG HitBlkTOI
Forwards
20 Blake Coleman 000 +2 20.11 1019:29
11 Mikael Backlund 011 0 10.01 0018:41
86 Joel Farabee 101 0 20.07 1117:36
92 Matvei Gridin 011 +2 40.20 0216:51
27 Matt Coronato 123 +2 40.05 0015:42
17 Yegor Sharangovich 011 +2 20.21 0014:51
22 Ryan Strome 112 +2 70.24 0014:05
16 Morgan Frost 123 +2 10.04 0014:05
95 Victor Olofsson 000 +2 30.08 1113:43
39 Tyson Gross 000 -1 40.08 1211:35
78 Brennan Othmann 011 -1 10.01 2010:12
43 Adam Klapka 101 -1 50.34 1008:51
Defense
28 Zach Whitecloud 011 0 00.00 3124:10
7 Kevin Bahl 000 0 00.00 1022:12
3 Olli Maatta 112 +2 20.55 0220:55
48 Hunter Brzustewicz 022 +2 00.00 2018:25
19 Zayne Parekh 112 0 30.14 1116:29
94 Brayden Pachal 000 0 10.03 4114:57
Goalie SAGA SVSV% xGA GSAx
Dustin Wolf 34331 .912 2.93 -0.07

Skaters by time on ice. Goalie lines count shots with the goalie in net, from the NHL play-by-play.

Player ratings

What each player added to the result, in goals, from most to least. Hover a number for what it's made of.

Vancouver Canucks

Player Rating Points Shots On ice Pen FO Other GSAx TOI
40 Elias Pettersson C +2.41 +1.10 +0.27 +0.82 +0.15 +0.02 +0.05 — 19:17
90 Victor Mancini D +2.37 +0.70 +0.03 +1.52 0.00 0.00 +0.12 — 16:00
92 Liam Ohgren L +2.17 +0.75 +0.34 +0.88 +0.15 0.00 +0.05 — 17:51
94 Linus Karlsson C +1.68 +0.70 +0.04 +0.82 +0.15 -0.02 0.00 — 18:05
7 Pierre-Olivier Joseph D +1.24 0.00 +0.03 +1.17 0.00 0.00 +0.05 — 15:02
21 Nils Hoglander L +1.21 +0.75 +0.08 +0.40 0.00 0.00 -0.02 — 7:42
74 Jake DeBrusk L +0.74 +0.75 +0.13 -0.14 0.00 0.00 0.00 — 13:24
6 Brock Boeser R +0.31 +0.70 +0.20 -0.56 0.00 +0.01 -0.04 — 22:34
53 Teddy Blueger C +0.16 0.00 +0.20 +0.04 0.00 -0.06 -0.02 — 14:44
42 Curtis Douglas C +0.04 0.00 0.00 +0.09 0.00 -0.01 -0.04 — 6:30
5 Tom Willander D 0.00 0.00 +0.07 -0.13 0.00 0.00 +0.06 — 18:10
18 Drew O'Connor L -0.09 0.00 +0.19 -0.27 0.00 -0.01 0.00 — 17:09
24 Zeev Buium D -0.13 +0.55 +0.02 -0.75 0.00 0.00 +0.05 — 23:57
54 Aatu Räty C -0.23 0.00 +0.02 -0.32 0.00 +0.04 +0.02 — 11:50
29 Marcus Pettersson D -0.24 0.00 +0.01 -0.16 -0.15 0.00 +0.06 — 17:57
93 Marco Rossi C -0.37 0.00 +0.06 -0.28 -0.15 -0.03 +0.02 — 18:27
91 Evander Kane L -0.64 0.00 +0.22 -0.69 -0.15 +0.01 -0.02 — 13:19
17 Filip Hronek D -1.08 0.00 +0.01 -1.13 0.00 0.00 +0.04 — 26:13
32 Kevin Lankinen G -1.95 0.00 — — 0.00 — — -1.95 32:45
60 Nikita Tolopilo G -2.90 0.00 — — 0.00 — — -2.90 24:36

Calgary Flames

Player Rating Points Shots On ice Pen FO Other GSAx TOI
3 Olli Maatta D +3.09 +1.45 +0.36 +1.21 0.00 0.00 +0.08 — 20:55
16 Morgan Frost C +2.42 +1.85 +0.03 +0.43 0.00 +0.11 0.00 — 14:05
22 Ryan Strome C +2.23 +1.45 +0.15 +0.67 0.00 +0.02 -0.06 — 14:05
27 Matt Coronato R +2.01 +2.15 +0.03 -0.12 0.00 -0.01 -0.04 — 15:42
48 Hunter Brzustewicz D +1.97 +1.10 0.00 +0.91 0.00 0.00 -0.04 — 18:25
17 Yegor Sharangovich C +1.92 +0.55 +0.14 +1.18 0.00 +0.01 +0.04 — 14:51
95 Victor Olofsson L +1.10 0.00 +0.05 +0.98 0.00 0.00 +0.07 — 13:43
92 Matvei Gridin R +0.60 +0.55 +0.13 -0.14 0.00 0.00 +0.06 — 16:51
19 Zayne Parekh D +0.50 +1.45 +0.09 -0.86 -0.15 0.00 -0.03 — 16:29
43 Adam Klapka R +0.48 +0.75 +0.22 -0.49 0.00 0.00 0.00 — 8:51
86 Joel Farabee L +0.36 +0.75 +0.04 -0.63 +0.15 0.00 +0.05 — 17:36
20 Blake Coleman L +0.19 0.00 +0.07 +0.12 0.00 0.00 0.00 — 19:29
28 Zach Whitecloud D -0.05 +0.70 0.00 -0.78 0.00 0.00 +0.03 — 24:10
32 Dustin Wolf G -0.07 0.00 — — 0.00 — — -0.07 60:00
78 Brennan Othmann L -0.18 +0.70 +0.01 -0.89 0.00 0.00 0.00 — 10:12
11 Mikael Backlund C -0.29 +0.55 +0.01 -0.71 0.00 -0.06 -0.08 — 18:41
39 Tyson Gross C -0.50 0.00 +0.05 -0.65 0.00 -0.02 +0.12 — 11:35
94 Brayden Pachal D -0.69 0.00 +0.02 -0.76 0.00 0.00 +0.05 — 14:57
7 Kevin Bahl D -1.10 0.00 0.00 -0.78 -0.30 0.00 -0.02 — 22:12

An expected-goals take on Dom Luszczyszyn's Game Score: goals and assists, the quality of a player's own shots, shot quality for and against while they were on the ice at 5v5, penalties, faceoffs and puck plays, all in goals; goalies by goals saved above expected. From the NHL play-by-play and shift charts.