Toronto Maple LeafsTOR 4–2 Final Boston BruinsBOS

Tuesday, March 24, 2026

Final 1st2nd3rd T SOG
Toronto Maple LeafsTOR 022 4 35
Boston BruinsBOS 101 2 20
Playoff odds, % Change
BOS -10.5
TOR +0.0
DET +2.3
OTT +2.2
NYI +1.7
MTL +1.2
PHI +1.1
CBJ +0.8
PIT +0.8

How the result moved each team's playoff odds, calculated Mar 24, 2026 6:43 PM EDT.

Highlights

Scoring

1st Period
5:04 BOS Elias Lindholm (14) Morgan Geekie (28), Henri Jokiharju (11) · wrist xG 0.09 0–1 ▶
2nd Period
7:27 TOR Matthew Knies (19)SH Unassisted · wrist xG 0.20 1–1 ▶
18:08 TOR Max Domi (11)PP John Tavares (33), Oliver Ekman-Larsson (28) · backhand xG 0.29 2–1 ▶
3rd Period
3:00 TOR William Nylander (25) John Tavares (34), Jake McCabe (19) · snap xG 0.05 3–1 ▶
5:08 BOS Charlie McAvoy (10)PP David Pastrnak (59), Pavel Zacha (29) · deflected xG 0.12 3–2 ▶
19:38 TOR Matthew Knies (20)PPEN William Nylander (42), John Tavares (35) · poke xG 0.91 4–2 ▶

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

TOR 76%Deserve to win24% BOS
TORBOS
6.82Expected goals2.88
4Goals (no shootout)2
2.82Expected goals, 5 on 51.83
59Shot attempts49
53Unblocked attempts40
35Shots on goal20

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
15:30 TOR No shift No shift · Pezzetta, 12:23 on the bench
No shift from 19:00 of the 1st to 5:08 of the 3rd; 6 shifts (3:02) before that
3rd Period
1:50 TOR xG swing xG swing · Out-chanced BOS 1.66–0.06
In xG over 10 minutes, 13:30 of the 2nd to 3:30 of the 3rd; goals 2–0
17:00 BOS No shift No shift · Kuraly, 11:39 on the bench
No shift from 6:56 to 19:38 of the 3rd; 15 shifts (9:24) before that
17:00 BOS No shift No shift · Kastelic, 11:35 on the bench
No shift from 7:00 to 19:38 of the 3rd; 13 shifts (8:09) before that
17:00 BOS No shift No shift · Jeannot, 11:44 on the bench
No shift from 6:51 to 19:38 of the 3rd; 14 shifts (6:19) before that
19:12 BOS Pulled goalie Pulled goalie · Pulled Swayman, down 3–2
With 0:48 left; TOR scored at 19:38 of the 3rd (4–2)

Shot map

TOR shoots ←Bigger circle: higher xG; filled: goal→ BOS shoots
Morgan Rielly: wrist, 40 ft, xG 0.03 (P1 0:35) Nikita Zadorov: wrist, 52 ft, xG 0.02 (P1 1:41) Marat Khusnutdinov: tip-in, 14 ft, xG 0.08 (P1 2:55) Easton Cowan: tip-in, 7 ft, xG 0.10 (P1 3:15) Pavel Zacha: tip-in, 23 ft, xG 0.07 (P1 3:56) Dakota Joshua: tip-in, 21 ft, xG 0.04 (P1 4:24) Dakota Joshua: backhand, 5 ft, xG 0.27 (P1 4:27) Morgan Rielly: snap, 30 ft, xG 0.03 (P1 4:48) Brandon Carlo: wrist, 165 ft, xG 0.00 (P1 6:03) Matthew Knies: snap, 22 ft, xG 0.15 (P1 6:42) David Pastrnak: wrist, 30 ft, xG 0.07 (P1 7:00) Fraser Minten: tip-in, 27 ft, xG 0.04 (P1 7:35) Steven Lorentz: snap, 13 ft, xG 0.16 (P1 7:48) Bo Groulx: snap, 8 ft, xG 0.33 (P1 7:50) Jonathan Aspirot: slap, 56 ft, xG 0.01 (P1 8:49) Mason Lohrei: slap, 33 ft, xG 0.13 (P1 9:28) John Tavares: snap, 22 ft, xG 0.18 (P1 9:59) Max Domi: snap, 37 ft, xG 0.02 (P1 10:55) Pavel Zacha: wrist, 36 ft, xG 0.07 (P1 11:06) Casey Mittelstadt: tip-in, 23 ft, xG 0.05 (P1 11:37) Brandon Carlo: slap, 68 ft, xG 0.01 (P1 14:46) Sean Kuraly: slap, 55 ft, xG 0.01 (P1 15:48) Oliver Ekman-Larsson: wrist, 49 ft, xG 0.03 (P1 16:37) Easton Cowan: wrist, 9 ft, xG 0.16 (P1 19:47) Easton Cowan: snap, 52 ft, xG 0.01 (P2 0:05) Marat Khusnutdinov: tip-in, 6 ft, xG 0.14 (P2 0:36) Nikita Zadorov: snap, 34 ft, xG 0.11 (P2 2:05) Elias Lindholm: wrist, 6 ft, xG 0.04 (P2 2:06) Morgan Geekie: snap, 12 ft, xG 0.18 (P2 2:36) Simon Benoit: wrist, 154 ft, xG 0.00 (P2 4:03) Morgan Geekie: slap, 37 ft, xG 0.06 (P2 4:20) David Pastrnak: snap, 34 ft, xG 0.09 (P2 4:29) Morgan Geekie: wrist, 29 ft, xG 0.06 (P2 4:35) David Pastrnak: snap, 15 ft, xG 0.16 (P2 5:43) David Pastrnak: slap, 41 ft, xG 0.09 (P2 6:03) Morgan Geekie: tip-in, 18 ft, xG 0.04 (P2 6:04) Pavel Zacha: wrist, 5 ft, xG 0.06 (P2 6:05) Jacob Quillan: snap, 40 ft, xG 0.03 (P2 7:42) David Pastrnak: slap, 43 ft, xG 0.01 (P2 7:52) Steven Lorentz: snap, 21 ft, xG 0.24 (P2 8:33) Lukas Reichel: slap, 43 ft, xG 0.04 (P2 8:58) Hampus Lindholm: snap, 39 ft, xG 0.07 (P2 9:47) John Tavares: backhand, 13 ft, xG 0.03 (P2 10:09) Jonathan Aspirot: wrist, 64 ft, xG 0.00 (P2 11:27) Troy Stecher: snap, 54 ft, xG 0.01 (P2 12:01) David Pastrnak: wrist, 44 ft, xG 0.03 (P2 12:40) Dakota Joshua: snap, 36 ft, xG 0.02 (P2 12:50) Bo Groulx: slap, 50 ft, xG 0.03 (P2 13:03) David Pastrnak: wrist, 11 ft, xG 0.27 (P2 13:27) William Nylander: bat, 6 ft, xG 0.17 (P2 13:51) William Nylander: snap, 22 ft, xG 0.05 (P2 14:00) Morgan Rielly: backhand, 14 ft, xG 0.04 (P2 14:06) William Nylander: wrist, 5 ft, xG 0.08 (P2 14:16) Bo Groulx: tip-in, 19 ft, xG 0.06 (P2 15:14) William Nylander: slap, 43 ft, xG 0.02 (P2 16:09) Dakota Joshua: snap, 5 ft, xG 0.27 (P2 17:40) William Nylander: slap, 52 ft, xG 0.02 (P2 17:44) Jake McCabe: tip-in, 10 ft, xG 0.07 (P2 18:45) David Pastrnak: wrist, 45 ft, xG 0.03 (P2 19:28) John Tavares: wrist, 27 ft, xG 0.10 (P3 0:45) Oliver Ekman-Larsson: snap, 46 ft, xG 0.05 (P3 1:03) Morgan Rielly: snap, 59 ft, xG 0.04 (P3 1:18) Matias Maccelli: snap, 26 ft, xG 0.12 (P3 1:50) Dakota Joshua: snap, 11 ft, xG 0.19 (P3 2:18) Dakota Joshua: snap, 9 ft, xG 0.05 (P3 2:19) Morgan Geekie: backhand, 14 ft, xG 0.03 (P3 3:30) Hampus Lindholm: wrist, 38 ft, xG 0.06 (P3 3:37) Jonathan Aspirot: wrist, 67 ft, xG 0.01 (P3 6:17) Henri Jokiharju: snap, 53 ft, xG 0.00 (P3 6:19) Matthew Knies: snap, 40 ft, xG 0.04 (P3 7:22) Fraser Minten: snap, 32 ft, xG 0.06 (P3 7:57) Nikita Zadorov: wrist, 38 ft, xG 0.03 (P3 8:52) Oliver Ekman-Larsson: slap, 62 ft, xG 0.02 (P3 9:35) Viktor Arvidsson: backhand, 21 ft, xG 0.11 (P3 11:10) Dakota Joshua: snap, 42 ft, xG 0.04 (P3 12:09) William Nylander: snap, 24 ft, xG 0.08 (P3 13:33) Simon Benoit: wrist, 40 ft, xG 0.05 (P3 13:36) John Tavares: snap, 6 ft, xG 0.11 (P3 13:42) Casey Mittelstadt: snap, 45 ft, xG 0.02 (P3 13:58) Nick Robertson: snap, 29 ft, xG 0.08 (P3 14:43) Mason Lohrei: snap, 26 ft, xG 0.21 (P3 15:33) John Tavares: snap, 35 ft, xG 0.08 (P3 15:46) Morgan Rielly: snap, 14 ft, xG 0.16 (P3 16:10) William Nylander: snap, 13 ft, xG 0.24 (P3 17:28) Morgan Geekie: tip-in, 6 ft, xG 0.12 (P3 18:35) Brandon Carlo: snap, 148 ft, xG 0.46 (P3 18:52) William Nylander: snap, 9 ft, xG 0.80 (P3 19:36) Elias Lindholm: GOAL, wrist, 31 ft, xG 0.09 (P1 5:04) Matthew Knies: GOAL, wrist, 10 ft, xG 0.20 (P2 7:27) Max Domi: GOAL, backhand, 7 ft, xG 0.29 (P2 18:08) William Nylander: GOAL, snap, 27 ft, xG 0.05 (P3 3:00) Charlie McAvoy: GOAL, deflected, 12 ft, xG 0.12 (P3 5:08) Matthew Knies: GOAL, poke, 3 ft, xG 0.91 (P3 19:38)
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

Toronto Maple Leafs

Skater GAP+/− AttxG HitBlkTOI
Forwards
88 William Nylander 101 0 91.50 0121:53
91 John Tavares 022 0 60.50 0019:30
89 Matthew Knies 101 +1 41.30 2018:21
53 Easton Cowan 000 0 30.28 2017:45
29 Bo Groulx 000 +1 30.41 2015:43
11 Max Domi 101 0 30.31 0015:29
14 Nick Robertson 000 0 10.08 2014:29
81 Dakota Joshua 000 0 70.88 2012:58
63 Matias Maccelli 000 0 10.12 0011:45
18 Steven Lorentz 000 0 20.40 1111:05
26 Jacob Quillan 000 0 10.03 2109:51
61 Michael Pezzetta 000 0 00.00 2004:38
Defense
22 Jake McCabe 011 +1 10.07 0023:10
95 Oliver Ekman-Larsson 011 +1 40.10 1120:20
44 Morgan Rielly 000 0 60.29 0318:46
25 Brandon Carlo 000 -1 30.47 2018:20
44 Simon Benoit 000 +1 20.05 4116:39
28 Troy Stecher 000 0 30.01 0016:37
Goalie SAGA SVSV% xGA GSAx
Anthony Stolarz 20218 .900 2.88 +0.88

Boston Bruins

Skater GAP+/− AttxG HitBlkTOI
Forwards
88 David Pastrnak 011 0 80.75 2022:02
39 Morgan Geekie 011 +1 70.50 1020:00
28 Elias Lindholm 101 0 40.13 1119:34
93 Fraser Minten 000 -1 20.10 2019:09
18 Pavel Zacha 011 0 30.20 1016:37
76 Lukas Reichel 000 0 10.04 0116:29
33 Viktor Arvidsson 000 -1 30.11 0014:27
11 Casey Mittelstadt 000 -1 20.07 0014:26
92 Marat Khusnutdinov 000 0 20.21 0013:08
52 Sean Kuraly 000 0 10.01 0009:24
47 Mark Kastelic 000 0 10.00 1008:09
84 Tanner Jeannot 000 -1 00.00 1006:19
Defense
73 Charlie McAvoy 101 -1 10.12 2026:40
27 Hampus Lindholm 000 -1 40.13 0121:27
6 Mason Lohrei 000 -1 30.34 1016:40
20 Henri Jokiharju 011 +1 10.00 0115:48
91 Nikita Zadorov 000 0 30.16 2015:05
45 Jonathan Aspirot 000 0 30.02 1114:36
Goalie SAGA SVSV% xGA GSAx
Jeremy Swayman 34331 .912 4.64 +1.64

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.

Toronto Maple Leafs

Player Rating Points Shots On ice Pen FO Other GSAx TOI
91 John Tavares C +3.59 +1.95 +0.33 +0.96 +0.38 0.00 -0.02 — 19:30
88 William Nylander R +3.35 +1.45 +0.98 +0.73 +0.15 -0.01 +0.05 — 21:53
23 Matthew Knies L +1.78 +1.50 +0.85 -0.55 0.00 -0.01 0.00 — 18:21
22 Jake McCabe D +1.04 +0.55 +0.05 +0.61 -0.15 0.00 -0.02 — 23:10
95 Oliver Ekman-Larsson D +0.99 +0.55 +0.06 +0.33 0.00 0.00 +0.05 — 20:20
41 Anthony Stolarz G +0.88 0.00 — — 0.00 — — +0.88 59:51
11 Max Domi C +0.82 +0.75 +0.20 -0.10 0.00 -0.03 0.00 — 15:29
53 Easton Cowan R +0.80 0.00 +0.18 +0.64 0.00 0.00 -0.02 — 17:45
28 Troy Stecher D +0.75 0.00 +0.01 +0.75 0.00 0.00 0.00 — 16:59
18 Steven Lorentz C +0.71 0.00 +0.26 +0.38 0.00 +0.01 +0.07 — 11:27
25 Brandon Carlo D +0.53 0.00 +0.31 +0.37 -0.15 0.00 0.00 — 18:20
81 Dakota Joshua C +0.52 0.00 +0.57 +0.12 -0.15 -0.01 -0.02 — 12:58
2 Simon Benoit D +0.50 0.00 +0.03 +0.42 0.00 0.00 +0.05 — 17:01
61 Michael Pezzetta L +0.39 0.00 0.00 +0.54 -0.15 0.00 0.00 — 5:00
29 Bo Groulx C +0.35 0.00 +0.27 +0.19 0.00 -0.11 0.00 — 15:43
63 Matias Maccelli L +0.18 0.00 +0.08 +0.17 0.00 0.00 -0.06 — 11:45
89 Nick Robertson L +0.17 0.00 +0.05 +0.12 0.00 0.00 0.00 — 14:29
44 Morgan Rielly D +0.11 0.00 +0.19 -0.23 0.00 0.00 +0.15 — 18:46
26 Jacob Quillan C +0.06 0.00 +0.02 +0.03 0.00 -0.04 +0.05 — 10:13

Boston Bruins

Player Rating Points Shots On ice Pen FO Other GSAx TOI
1 Jeremy Swayman G +1.64 0.00 — — 0.00 — — +1.64 59:02
88 David Pastrnak R +1.39 +0.70 +0.49 +0.09 +0.15 0.00 -0.04 — 22:02
39 Morgan Geekie C +1.09 +0.70 +0.32 +0.13 0.00 0.00 -0.06 — 20:00
28 Elias Lindholm C +0.59 +0.75 +0.09 -0.37 0.00 +0.11 +0.01 — 19:34
20 Henri Jokiharju D +0.47 +0.55 0.00 +0.06 -0.15 0.00 +0.01 — 16:10
18 Pavel Zacha C +0.41 +0.55 +0.13 -0.20 0.00 -0.02 -0.04 — 16:37
73 Charlie McAvoy D +0.41 +0.75 +0.08 -0.51 +0.15 0.00 -0.06 — 26:40
45 Jonathan Aspirot D +0.11 0.00 +0.01 +0.09 0.00 0.00 +0.01 — 14:58
75 Lukas Reichel L +0.01 0.00 +0.03 -0.05 0.00 0.00 +0.03 — 16:29
52 Sean Kuraly C 0.00 0.00 +0.01 -0.07 0.00 +0.06 0.00 — 9:46
84 Tanner Jeannot L -0.11 0.00 0.00 -0.26 +0.15 0.00 0.00 — 6:41
71 Viktor Arvidsson L -0.11 0.00 +0.07 -0.14 0.00 0.00 -0.04 — 14:27
47 Mark Kastelic C -0.26 0.00 0.00 -0.57 +0.30 +0.01 0.00 — 8:31
91 Nikita Zadorov D -0.30 0.00 +0.10 -0.21 -0.22 0.00 +0.03 — 15:05
93 Fraser Minten C -0.34 0.00 +0.06 -0.45 0.00 +0.05 0.00 — 19:09
92 Marat Khusnutdinov C -0.42 0.00 +0.14 -0.56 0.00 0.00 0.00 — 13:08
6 Mason Lohrei D -0.52 0.00 +0.22 -0.68 0.00 0.00 -0.06 — 16:40
11 Casey Mittelstadt C -0.90 0.00 +0.04 -0.62 -0.30 -0.01 -0.02 — 14:26
27 Hampus Lindholm D -0.99 0.00 +0.09 -1.13 0.00 0.00 +0.05 — 21:27

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.