Buffalo SabresBUF 4–1 Final Dallas StarsDAL

Wednesday, December 31, 2025

Final 1st2nd3rd T SOG
Buffalo SabresBUF 022 4 31
Dallas StarsDAL 100 1 29

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

Highlights

Scoring

1st Period
0:15 DAL Mavrik Bourque (6) Jason Robertson (23), Miro Heiskanen (28) · snap xG 0.48 0–1 ▶
2nd Period
7:44 BUF Josh Doan (11) Tage Thompson (17) · snap xG 0.12 1–1 ▶
17:05 BUF Bowen Byram (9) Noah Ostlund (4), Alex Tuch (20) · snap xG 0.10 2–1 ▶
3rd Period
9:21 BUF Tage Thompson (19) Josh Doan (15), Bowen Byram (11) · snap xG 0.21 3–1 ▶
11:35 BUF Tage Thompson (20) Noah Ostlund (5), Owen Power (8) · snap xG 0.08 4–1 ▶

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 46%Deserve to win54% DAL
BUFDAL
2.94Expected goals3.18
4Goals (no shootout)1
2.41Expected goals, 5 on 52.72
59Shot attempts48
46Unblocked attempts38
31Shots on goal29

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).

1st Period
18:03 BUF Deserve to win Deserve to win · BUF takes the lead, 62–38%
DAL had led since 0:15 of the 1st, by as much as 76%
3rd Period
13:14 BUF Goalie Goalie · Luukkonen +2.0 goals saved
1 goal on 3.00 xG, 27 shots on goal

Shot map

BUF shoots ←Bigger circle: higher xG; filled: goal→ DAL shoots
Mavrik Bourque: tip-in, 23 ft, xG 0.06 (P1 0:12) Josh Norris: slap, 33 ft, xG 0.09 (P1 0:45) Josh Doan: backhand, 13 ft, xG 0.20 (P1 1:07) Rasmus Dahlin: slap, 45 ft, xG 0.07 (P1 1:37) Zach Benson: backhand, 7 ft, xG 0.04 (P1 1:39) Colin Blackwell: snap, 145 ft, xG 0.00 (P1 2:15) Jason Robertson: snap, 94 ft, xG 0.00 (P1 3:07) Roope Hintz: snap, 34 ft, xG 0.08 (P1 3:30) Bowen Byram: snap, 27 ft, xG 0.15 (P1 4:12) Michael Kesselring: snap, 65 ft, xG 0.02 (P1 4:28) Alex Tuch: backhand, 30 ft, xG 0.02 (P1 4:53) Mattias Samuelsson: snap, 60 ft, xG 0.00 (P1 4:58) Tage Thompson: wrist, 40 ft, xG 0.02 (P1 5:42) Rasmus Dahlin: backhand, 5 ft, xG 0.21 (P1 6:06) Zach Benson: snap, 5 ft, xG 0.04 (P1 6:07) Mavrik Bourque: snap, 43 ft, xG 0.01 (P1 8:04) Zach Benson: snap, 57 ft, xG 0.01 (P1 9:21) Radek Faksa: snap, 42 ft, xG 0.02 (P1 10:07) Esa Lindell: snap, 49 ft, xG 0.00 (P1 10:11) Miro Heiskanen: snap, 37 ft, xG 0.07 (P1 10:22) Tage Thompson: snap, 42 ft, xG 0.05 (P1 11:24) Rasmus Dahlin: slap, 59 ft, xG 0.01 (P1 11:50) Ryan McLeod: snap, 38 ft, xG 0.05 (P1 12:21) Rasmus Dahlin: snap, 58 ft, xG 0.03 (P1 12:59) Josh Dunne: tip-in, 9 ft, xG 0.06 (P1 14:37) Alexander Petrovic: snap, 32 ft, xG 0.12 (P1 14:50) Jason Robertson: snap, 49 ft, xG 0.03 (P1 16:03) Nils Lundkvist: snap, 39 ft, xG 0.06 (P1 16:11) Jason Robertson: backhand, 18 ft, xG 0.12 (P1 16:52) Tage Thompson: snap, 10 ft, xG 0.19 (P1 17:19) Tage Thompson: snap, 9 ft, xG 0.07 (P1 17:20) Josh Doan: wrist, 34 ft, xG 0.05 (P1 17:24) Mikko Rantanen: backhand, 136 ft, xG 0.00 (P1 17:38) Josh Dunne: deflected, 7 ft, xG 0.14 (P1 18:03) Radek Faksa: snap, 10 ft, xG 0.19 (P1 18:49) Mattias Samuelsson: snap, 60 ft, xG 0.02 (P1 19:19) Zach Metsa: snap, 64 ft, xG 0.01 (P1 19:22) Colin Blackwell: snap, 6 ft, xG 0.24 (P2 2:41) Bowen Byram: snap, 13 ft, xG 0.14 (P2 3:11) Jordan Greenway: snap, 47 ft, xG 0.01 (P2 4:09) Mattias Samuelsson: snap, 41 ft, xG 0.02 (P2 4:11) Josh Dunne: backhand, 9 ft, xG 0.04 (P2 4:12) Matt Duchene: snap, 27 ft, xG 0.16 (P2 6:26) Mattias Samuelsson: snap, 49 ft, xG 0.01 (P2 6:58) Colin Blackwell: wrist, 36 ft, xG 0.06 (P2 8:35) Miro Heiskanen: wrist, 32 ft, xG 0.08 (P2 8:43) Thomas Harley: snap, 67 ft, xG 0.01 (P2 8:59) Jason Robertson: wrist, 28 ft, xG 0.11 (P2 9:57) Peyton Krebs: backhand, 7 ft, xG 0.15 (P2 13:26) Wyatt Johnston: snap, 14 ft, xG 0.29 (P2 13:42) Alex Tuch: snap, 42 ft, xG 0.01 (P2 15:08) Peyton Krebs: wrist, 38 ft, xG 0.02 (P2 15:36) Roope Hintz: snap, 15 ft, xG 0.19 (P2 16:07) Josh Dunne: snap, 12 ft, xG 0.07 (P2 17:21) Thomas Harley: snap, 63 ft, xG 0.02 (P2 18:34) Rasmus Dahlin: slap, 50 ft, xG 0.02 (P2 18:52) Josh Doan: snap, 9 ft, xG 0.15 (P2 18:54) Josh Doan: wrist, 10 ft, xG 0.02 (P2 18:55) Tage Thompson: backhand, 18 ft, xG 0.04 (P3 0:47) Mikko Rantanen: snap, 9 ft, xG 0.22 (P3 1:02) Ilya Lyubushkin: snap, 36 ft, xG 0.03 (P3 2:20) Miro Heiskanen: snap, 48 ft, xG 0.03 (P3 2:27) Mikko Rantanen: slap, 37 ft, xG 0.06 (P3 5:27) Tage Thompson: snap, 36 ft, xG 0.01 (P3 6:31) Noah Ostlund: snap, 50 ft, xG 0.01 (P3 8:00) Matt Duchene: tip-in, 20 ft, xG 0.07 (P3 8:55) Tage Thompson: wrist, 30 ft, xG 0.09 (P3 9:09) Jason Robertson: snap, 5 ft, xG 0.02 (P3 11:02) Jason Robertson: snap, 7 ft, xG 0.03 (P3 11:03) Jason Robertson: snap, 8 ft, xG 0.03 (P3 11:04) Colin Blackwell: snap, 46 ft, xG 0.01 (P3 12:52) Roope Hintz: tip-in, 13 ft, xG 0.02 (P3 12:56) Mavrik Bourque: deflected, 20 ft, xG 0.07 (P3 13:14) Jack Quinn: slap, 42 ft, xG 0.02 (P3 14:59) Peyton Krebs: tip-in, 9 ft, xG 0.04 (P3 15:04) Bowen Byram: snap, 53 ft, xG 0.01 (P3 15:29) Jason Robertson: snap, 33 ft, xG 0.10 (P3 15:57) Jason Robertson: snap, 10 ft, xG 0.06 (P3 16:00) Mavrik Bourque: snap, 60 ft, xG 0.01 (P3 19:17) Mavrik Bourque: GOAL, snap, 12 ft, xG 0.48 (P1 0:15) Josh Doan: GOAL, snap, 24 ft, xG 0.12 (P2 7:44) Bowen Byram: GOAL, snap, 28 ft, xG 0.10 (P2 17:05) Tage Thompson: GOAL, snap, 9 ft, xG 0.21 (P3 9:21) Tage Thompson: GOAL, snap, 38 ft, xG 0.08 (P3 11:35)
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 213 +3 110.78 1018:45
89 Alex Tuch 011 +1 30.03 1118:21
71 Ryan McLeod 000 0 10.05 0116:35
6 Zach Benson 000 +1 30.09 0116:11
91 Josh Doan 112 +2 60.54 4015:27
22 Jack Quinn 000 0 20.02 1015:21
19 Peyton Krebs 000 +1 30.20 2013:59
9 Josh Norris 000 0 10.09 0013:37
29 Beck Malenstyn 000 0 00.00 5013:06
86 Noah Ostlund 022 +1 10.01 0112:56
12 Jordan Greenway 000 0 10.01 4012:28
44 Josh Dunne 000 0 50.31 1011:15
Defense
26 Rasmus Dahlin 000 +1 50.33 0024:43
24 Bowen Byram 112 +3 50.40 3124:36
25 Owen Power 011 +1 30.00 0124:12
23 Mattias Samuelsson 000 +1 50.06 1222:56
7 Michael Kesselring 000 0 30.02 1112:04
73 Zach Metsa 000 0 10.01 0009:28
Goalie SAGA SVSV% xGA GSAx
Ukko-Pekka Luukkonen 29128 .966 3.18 +2.18

Dallas Stars

Skater GAP+/− AttxG HitBlkTOI
Forwards
21 Jason Robertson 011 +1 90.50 0021:16
96 Mikko Rantanen 000 -2 30.28 1020:36
53 Wyatt Johnston 000 -3 20.29 1116:59
24 Roope Hintz 000 +1 30.30 1016:32
95 Matt Duchene 000 -4 20.23 0015:43
22 Mavrik Bourque 101 0 60.63 0015:17
18 Sam Steel 000 0 10.00 2013:17
10 Oskar Bäck 000 0 00.00 0012:54
15 Colin Blackwell 000 0 40.31 1012:33
12 Radek Faksa 000 0 20.21 1112:33
14 Jamie Benn 000 -1 10.00 0211:27
49 Justin Hryckowian 000 -1 00.00 1110:10
Defense
4 Miro Heiskanen 011 -1 50.19 0124:50
55 Thomas Harley 000 -4 20.04 1122:58
23 Esa Lindell 000 +1 20.00 0122:58
46 Ilya Lyubushkin 000 0 30.03 0116:37
5 Nils Lundkvist 000 -1 10.06 2115:53
36 Alexander Petrovic 000 -1 20.12 4213:27
Goalie SAGA SVSV% xGA GSAx
Casey DeSmith 31427 .871 2.94 -1.06

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
72 Tage Thompson C +3.59 +2.20 +0.51 +1.05 -0.15 -0.01 0.00 — 18:45
4 Bowen Byram D +2.78 +1.30 +0.26 +1.15 0.00 0.00 +0.07 — 24:36
91 Josh Doan R +2.52 +1.45 +0.35 +0.87 -0.15 0.00 0.00 — 15:27
1 Ukko-Pekka Luukkonen G +2.18 0.00 — — 0.00 — — +2.18 60:00
25 Owen Power D +0.97 +0.55 0.00 +0.24 +0.15 0.00 +0.03 — 24:12
86 Noah Ostlund C +0.71 +1.40 +0.01 -0.71 0.00 +0.01 +0.01 — 12:56
19 Peyton Krebs C +0.70 0.00 +0.13 +0.58 0.00 -0.01 0.00 — 13:59
26 Rasmus Dahlin D +0.56 0.00 +0.22 +0.37 0.00 0.00 -0.02 — 24:43
44 Josh Dunne C +0.43 0.00 +0.20 +0.08 +0.15 -0.02 +0.02 — 11:15
6 Zach Benson L +0.28 0.00 +0.06 +0.17 0.00 0.00 +0.05 — 16:11
12 Jordan Greenway L +0.07 0.00 +0.01 +0.07 0.00 -0.01 0.00 — 12:28
89 Alex Tuch R +0.06 +0.55 +0.02 -0.55 0.00 +0.01 +0.03 — 18:21
71 Ryan McLeod C -0.03 0.00 +0.03 -0.13 0.00 +0.08 -0.01 — 16:35
29 Beck Malenstyn L -0.04 0.00 0.00 -0.04 0.00 0.00 0.00 — 13:36
8 Michael Kesselring D -0.07 0.00 +0.01 -0.11 0.00 0.00 +0.03 — 12:04
22 Jack Quinn R -0.09 0.00 +0.01 -0.12 0.00 0.00 +0.02 — 15:21
73 Zach Metsa D -0.52 0.00 +0.01 -0.51 0.00 0.00 -0.02 — 9:28
23 Mattias Samuelsson D -0.83 0.00 +0.04 -0.93 0.00 0.00 +0.06 — 22:56
9 Josh Norris C -0.85 0.00 +0.06 -0.94 0.00 +0.03 0.00 — 13:07

Dallas Stars

Player Rating Points Shots On ice Pen FO Other GSAx TOI
21 Jason Robertson L +2.69 +0.70 +0.33 +1.51 +0.15 0.00 0.00 — 21:16
22 Mavrik Bourque C +2.43 +0.75 +0.41 +1.30 0.00 -0.04 0.00 — 15:17
24 Roope Hintz C +1.84 0.00 +0.19 +1.64 0.00 +0.01 0.00 — 16:32
4 Miro Heiskanen D +1.48 +0.55 +0.12 +0.76 0.00 0.00 +0.05 — 24:50
23 Esa Lindell D +1.24 0.00 0.00 +1.22 0.00 0.00 +0.01 — 22:58
15 Colin Blackwell C +0.06 0.00 +0.20 -0.14 0.00 -0.02 +0.02 — 12:33
18 Sam Steel C +0.03 0.00 0.00 +0.06 0.00 -0.03 0.00 — 13:17
5 Nils Lundkvist D -0.03 0.00 +0.04 -0.10 0.00 0.00 +0.03 — 15:53
12 Radek Faksa C -0.12 0.00 +0.14 -0.17 -0.15 +0.01 +0.05 — 12:33
10 Oskar Bäck C -0.13 0.00 0.00 -0.13 0.00 0.00 0.00 — 12:54
28 Alexander Petrovic D -0.29 0.00 +0.07 -0.44 0.00 0.00 +0.08 — 13:27
46 Ilya Lyubushkin D -0.49 0.00 +0.02 -0.56 0.00 0.00 +0.05 — 16:37
14 Jamie Benn L -0.52 0.00 0.00 -0.58 0.00 0.00 +0.06 — 11:27
49 Justin Hryckowian C -0.55 0.00 0.00 -0.47 -0.15 0.00 +0.07 — 10:10
96 Mikko Rantanen R -0.60 0.00 +0.18 -0.76 0.00 0.00 -0.02 — 20:36
55 Thomas Harley D -0.87 0.00 +0.02 -1.08 +0.15 0.00 +0.03 — 22:58
53 Wyatt Johnston C -0.97 0.00 +0.19 -1.18 0.00 -0.01 +0.03 — 16:59
1 Casey DeSmith G -1.06 0.00 — — 0.00 — — -1.06 60:00
95 Matt Duchene C -1.33 0.00 +0.15 -1.44 0.00 0.00 -0.04 — 15:43

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.