Buffalo SabresBUF 4–2 Final St. Louis BluesSTL

Monday, December 29, 2025

Final 1st2nd3rd T SOG
Buffalo SabresBUF 112 4 34
St. Louis BluesSTL 200 2 18

No impact calculated for this game. Impacts are calculated for games in the next 7 days.

Highlights

Scoring

1st Period
2:19 BUF Noah Ostlund (7) Josh Norris (7) · wrist xG 0.19 1–0 ▶
5:08 STL Brayden Schenn (8) Otto Stenberg (4), Jordan Kyrou (9) · wrist xG 0.11 1–1 ▶
8:09 STL Jimmy Snuggerud (6) Robby Fabbri (3), Colton Parayko (11) · wrist xG 0.13 1–2 ▶
2nd Period
15:17 BUF Alex Tuch (12) Mattias Samuelsson (13) · snap xG 0.03 2–2 ▶
3rd Period
1:46 BUF Zach Benson (4) Jack Quinn (15), Ryan McLeod (15) · bat xG 0.13 3–2 ▶
18:44 BUF Peyton Krebs (3)EN Beck Malenstyn (3) · wrist xG 0.56 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

BUF 83%Deserve to win17% STL
BUFSTL
4.12Expected goals1.56
4Goals (no shootout)2
2.80Expected goals, 5 on 51.26
70Shot attempts39
52Unblocked attempts27
34Shots on goal18

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
9:30 BUF xG swing xG swing · Out-chanced STL 1.19–0.13
In xG over 10 minutes, 19:30 of the 1st to 9:30 of the 2nd; neither team scored
3rd Period
18:13 STL Pulled goalie Pulled goalie · Pulled Hofer, down 3–2
With 1:47 left; BUF scored at 18:44 of the 3rd (4–2)

Shot map

BUF shoots ←Bigger circle: higher xG; filled: goal→ STL shoots
Cam Fowler: wrist, 58 ft, xG 0.01 (P1 1:47) Mattias Samuelsson: wrist, 95 ft, xG 0.00 (P1 2:23) Zach Benson: wrist, 4 ft, xG 0.25 (P1 2:28) Josh Doan: wrist, 6 ft, xG 0.08 (P1 4:17) Josh Doan: wrist, 6 ft, xG 0.03 (P1 4:18) Philip Broberg: slap, 66 ft, xG 0.02 (P1 4:45) Bowen Byram: wrist, 43 ft, xG 0.01 (P1 5:38) Jimmy Snuggerud: wrist, 44 ft, xG 0.02 (P1 5:46) Alexey Toropchenko: wrist, 77 ft, xG 0.00 (P1 6:01) Tage Thompson: wrist, 49 ft, xG 0.02 (P1 6:50) Robby Fabbri: backhand, 6 ft, xG 0.03 (P1 8:07) Jack Quinn: wrist, 46 ft, xG 0.00 (P1 8:43) Peyton Krebs: wrist, 34 ft, xG 0.01 (P1 8:47) Justin Faulk: wrist, 45 ft, xG 0.03 (P1 10:28) Justin Faulk: snap, 39 ft, xG 0.07 (P1 11:20) Brayden Schenn: wrist, 47 ft, xG 0.03 (P1 12:09) Jack Quinn: wrist, 49 ft, xG 0.02 (P1 16:01) Robert Thomas: snap, 17 ft, xG 0.07 (P1 17:35) Jordan Greenway: wrist, 57 ft, xG 0.01 (P1 18:39) Michael Kesselring: wrist, 64 ft, xG 0.01 (P1 18:48) Rasmus Dahlin: wrist, 54 ft, xG 0.03 (P2 0:34) Josh Doan: wrist, 8 ft, xG 0.11 (P2 0:47) Zach Benson: wrist, 11 ft, xG 0.12 (P2 1:58) Zach Benson: wrist, 13 ft, xG 0.15 (P2 2:09) Owen Power: wrist, 31 ft, xG 0.08 (P2 3:52) Mathieu Joseph: tip-in, 26 ft, xG 0.04 (P2 4:11) Cam Fowler: wrist, 29 ft, xG 0.04 (P2 4:56) Robert Thomas: backhand, 13 ft, xG 0.04 (P2 5:04) Zach Benson: snap, 53 ft, xG 0.01 (P2 7:57) Zach Benson: wrist, 39 ft, xG 0.01 (P2 8:20) Ryan McLeod: wrist, 49 ft, xG 0.03 (P2 8:25) Bowen Byram: wrist, 6 ft, xG 0.50 (P2 8:28) Mattias Samuelsson: wrist, 47 ft, xG 0.03 (P2 8:44) Josh Doan: wrist, 19 ft, xG 0.11 (P2 9:22) Cam Fowler: wrist, 24 ft, xG 0.11 (P2 9:36) Ryan McLeod: wrist, 58 ft, xG 0.02 (P2 11:46) Alex Tuch: wrist, 37 ft, xG 0.01 (P2 12:49) Alex Tuch: wrist, 18 ft, xG 0.06 (P2 12:57) Robby Fabbri: snap, 26 ft, xG 0.16 (P2 14:45) Alexey Toropchenko: wrist, 52 ft, xG 0.01 (P2 15:05) Justin Faulk: wrist, 20 ft, xG 0.12 (P2 16:13) Jake Neighbours: backhand, 18 ft, xG 0.07 (P2 16:50) Jimmy Snuggerud: wrist, 31 ft, xG 0.01 (P2 16:53) Jack Quinn: wrist, 8 ft, xG 0.12 (P2 18:41) Rasmus Dahlin: slap, 58 ft, xG 0.03 (P2 18:48) Jack Quinn: backhand, 10 ft, xG 0.08 (P2 18:52) Josh Doan: snap, 34 ft, xG 0.09 (P2 19:30) Mattias Samuelsson: wrist, 36 ft, xG 0.03 (P3 0:30) Pavel Buchnevich: wrist, 45 ft, xG 0.03 (P3 3:57) Peyton Krebs: wrist, 38 ft, xG 0.05 (P3 4:38) Rasmus Dahlin: backhand, 9 ft, xG 0.10 (P3 4:45) Alexey Toropchenko: tip-in, 6 ft, xG 0.13 (P3 5:23) Beck Malenstyn: wrist, 31 ft, xG 0.11 (P3 5:40) Josh Dunne: tip-in, 8 ft, xG 0.08 (P3 5:55) Jordan Greenway: wrist, 42 ft, xG 0.01 (P3 6:22) Justin Faulk: wrist, 28 ft, xG 0.03 (P3 7:06) Peyton Krebs: wrist, 52 ft, xG 0.00 (P3 7:17) Owen Power: wrist, 60 ft, xG 0.01 (P3 7:45) Zach Benson: tip-in, 13 ft, xG 0.01 (P3 7:48) Jack Quinn: wrist, 19 ft, xG 0.18 (P3 8:19) Philip Broberg: wrist, 56 ft, xG 0.01 (P3 8:45) Josh Norris: tip-in, 9 ft, xG 0.12 (P3 9:56) Josh Doan: wrist, 11 ft, xG 0.16 (P3 10:16) Tage Thompson: slap, 34 ft, xG 0.10 (P3 10:24) Robert Thomas: wrist, 20 ft, xG 0.16 (P3 11:07) Ryan McLeod: slap, 51 ft, xG 0.03 (P3 11:33) Otto Stenberg: tip-in, 27 ft, xG 0.03 (P3 13:00) Rasmus Dahlin: wrist, 54 ft, xG 0.03 (P3 13:51) Jack Quinn: snap, 27 ft, xG 0.04 (P3 13:59) Michael Kesselring: slap, 62 ft, xG 0.00 (P3 14:36) Tage Thompson: wrist, 47 ft, xG 0.04 (P3 16:15) Rasmus Dahlin: slap, 49 ft, xG 0.05 (P3 16:31) Justin Faulk: slap, 43 ft, xG 0.02 (P3 16:51) Noah Ostlund: GOAL, wrist, 18 ft, xG 0.19 (P1 2:19) Brayden Schenn: GOAL, wrist, 24 ft, xG 0.11 (P1 5:08) Jimmy Snuggerud: GOAL, wrist, 8 ft, xG 0.13 (P1 8:09) Alex Tuch: GOAL, snap, 40 ft, xG 0.03 (P2 15:17) Zach Benson: GOAL, bat, 5 ft, xG 0.13 (P3 1:46) Peyton Krebs: GOAL, wrist, 140 ft, xG 0.56 (P3 18:44)
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

Buffalo Sabres

Skater GAP+/− AttxG HitBlkTOI
Forwards
72 Tage Thompson 000 0 40.17 1019:12
71 Ryan McLeod 011 0 30.08 1017:09
91 Josh Doan 000 0 60.59 1117:01
9 Josh Norris 011 +1 10.12 0116:26
6 Zach Benson 101 +1 70.68 0015:39
29 Beck Malenstyn 011 +1 10.11 5214:35
19 Peyton Krebs 101 +1 40.63 0014:12
22 Jack Quinn 011 +1 70.43 1014:02
89 Alex Tuch 101 0 40.10 0213:54
44 Josh Dunne 000 0 20.08 2213:08
86 Noah Ostlund 101 +1 20.19 0012:57
12 Jordan Greenway 000 0 30.02 2012:32
Defense
25 Owen Power 000 +1 60.09 0123:42
26 Rasmus Dahlin 000 -1 70.23 1023:40
24 Bowen Byram 000 +2 30.51 1022:21
23 Mattias Samuelsson 011 -1 40.06 0222:14
7 Michael Kesselring 000 +1 60.02 3015:33
73 Zach Metsa 000 +2 00.00 0010:18
Goalie SAGA SVSV% xGA GSAx
Alex Lyon 18216 .889 1.56 -0.44

St. Louis Blues

Skater GAP+/− AttxG HitBlkTOI
Forwards
18 Robert Thomas 000 -2 30.28 0018:28
89 Pavel Buchnevich 000 -2 20.03 0017:01
13 Alexey Toropchenko 000 0 40.14 2415:58
10 Brayden Schenn 101 0 30.14 3215:51
70 Oskar Sundqvist 000 0 00.00 1015:41
63 Jake Neighbours 000 -2 10.07 6115:33
21 Mathieu Joseph 000 0 20.04 2314:39
28 Otto Stenberg 011 0 10.03 1014:02
21 Jimmy Snuggerud 101 0 50.16 4113:24
25 Jordan Kyrou 011 -1 00.00 0113:12
21 Robby Fabbri 011 0 30.19 4111:52
15 Dalibor Dvorsky 000 0 00.00 0010:12
Defense
6 Philip Broberg 000 +1 30.02 0125:26
55 Colton Parayko 011 +1 00.00 3224:58
72 Justin Faulk 000 0 50.28 1123:27
17 Cam Fowler 000 -4 40.17 0022:25
75 Tyler Tucker 000 +1 10.00 0113:30
23 Logan Mailloux 000 -3 20.00 0008:52
Goalie SAGA SVSV% xGA GSAx
Joel Hofer 33330 .909 3.56 +0.56

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.

Buffalo Sabres

Player Rating Points Shots On ice Pen FO Other GSAx TOI
6 Zach Benson L +2.79 +0.75 +0.44 +1.64 0.00 -0.01 -0.04 — 15:39
22 Jack Quinn R +2.46 +0.70 +0.28 +1.51 0.00 -0.01 -0.02 — 14:02
71 Ryan McLeod C +1.92 +0.55 +0.05 +1.28 0.00 +0.04 0.00 — 17:09
4 Bowen Byram D +1.84 0.00 +0.33 +1.50 0.00 0.00 0.00 — 22:21
9 Josh Norris C +1.42 +0.70 +0.08 +0.58 0.00 +0.01 +0.05 — 16:26
23 Mattias Samuelsson D +1.40 +0.70 +0.04 +0.56 0.00 0.00 +0.10 — 22:14
19 Peyton Krebs C +1.26 +0.75 +0.41 +0.11 0.00 +0.01 -0.02 — 14:12
89 Alex Tuch R +0.94 +0.75 +0.06 +0.05 0.00 0.00 +0.08 — 13:54
29 Beck Malenstyn L +0.87 +0.70 +0.07 0.00 0.00 0.00 +0.10 — 14:35
25 Owen Power D +0.73 0.00 +0.06 +0.62 0.00 0.00 +0.05 — 23:42
91 Josh Doan R +0.72 0.00 +0.38 +0.12 +0.15 0.00 +0.07 — 17:01
86 Noah Ostlund C +0.71 +0.75 +0.13 -0.18 0.00 +0.01 0.00 — 12:57
73 Zach Metsa D +0.48 0.00 0.00 +0.46 0.00 0.00 +0.02 — 10:18
8 Michael Kesselring D +0.33 0.00 +0.01 +0.35 0.00 0.00 -0.04 — 15:33
26 Rasmus Dahlin D +0.32 0.00 +0.15 +0.19 0.00 0.00 -0.02 — 23:40
44 Josh Dunne C +0.29 0.00 +0.05 0.00 +0.15 -0.01 +0.10 — 13:08
72 Tage Thompson C +0.28 0.00 +0.11 +0.15 0.00 +0.02 0.00 — 19:12
12 Jordan Greenway L +0.26 0.00 +0.01 +0.26 0.00 0.00 -0.02 — 12:32
34 Alex Lyon G -0.44 0.00 — — 0.00 — — -0.44 59:25

St. Louis Blues

Player Rating Points Shots On ice Pen FO Other GSAx TOI
21 Jimmy Snuggerud R +0.97 +0.75 +0.11 +0.06 0.00 0.00 +0.05 — 13:24
10 Brayden Schenn C +0.59 +0.75 +0.09 -0.35 0.00 -0.01 +0.10 — 15:51
30 Joel Hofer G +0.56 0.00 — — 0.00 — — +0.56 59:29
9 Robby Fabbri C +0.51 +0.70 +0.13 -0.36 0.00 0.00 +0.05 — 11:52
28 Otto Stenberg C +0.21 +0.70 +0.02 -0.48 0.00 0.00 -0.04 — 14:02
75 Tyler Tucker D +0.13 0.00 0.00 +0.10 0.00 0.00 +0.03 — 13:30
25 Jordan Kyrou R +0.09 +0.55 0.00 -0.52 0.00 +0.01 +0.05 — 13:12
18 Robert Thomas C -0.04 0.00 +0.18 -0.21 0.00 +0.01 -0.02 — 18:28
72 Justin Faulk D -0.06 0.00 +0.18 -0.31 0.00 0.00 +0.07 — 23:27
63 Jake Neighbours L -0.12 0.00 +0.04 -0.19 0.00 0.00 +0.03 — 15:33
55 Colton Parayko D -0.14 +0.55 0.00 -0.79 0.00 0.00 +0.10 — 24:58
89 Pavel Buchnevich L -0.37 0.00 +0.02 -0.22 -0.15 0.00 -0.02 — 17:01
54 Dalibor Dvorsky R -0.41 0.00 0.00 -0.35 0.00 -0.04 -0.02 — 10:12
71 Mathieu Joseph R -0.59 0.00 +0.03 -0.73 0.00 -0.01 +0.13 — 14:39
6 Philip Broberg D -0.67 0.00 +0.01 -0.70 0.00 0.00 +0.01 — 25:26
13 Alexey Toropchenko R -0.69 0.00 +0.09 -0.98 0.00 0.00 +0.20 — 15:58
23 Logan Mailloux D -0.88 0.00 0.00 -0.84 0.00 0.00 -0.04 — 8:52
70 Oskar Sundqvist C -1.07 0.00 0.00 -1.03 0.00 -0.02 -0.02 — 15:41
17 Cam Fowler D -1.36 0.00 +0.11 -1.32 -0.15 0.00 0.00 — 22:25

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.