Quick answer
- Winner
- Buffalo Bills
- Final score
- Buffalo Bills 23–20 Cleveland Browns
- Halftime
- Buffalo Bills 20–10 Cleveland Browns at halftime
- FantasyHQ MVP
- James Cook III
- Top passer
- Shedeur Sanders
- Biggest EPA play
- (10:47) 12-S.Sanders pass short right intended for 83-M.Corley INTERCEPTED by 92-D.Jones (…
- Game date
- 2025-12-21
Game summary
The Buffalo Bills beat the Cleveland Browns 23–20 on 2025-12-21. James Cook III posted a game-high +6.08 total EPA in the rushing.
The highest-scoring period was Q2 with 16 combined points.
Line score
Final score and points by quarter.
| Q1 | Q2 | Q3 | Q4 | — | T | |
|---|---|---|---|---|---|---|
| 7 | 13 | 3 | 0 | 0 | 23 | |
| 7 | 3 | 7 | 3 | 0 | 20 |
Stars of the game
Top performers by total expected points added (EPA).
- 1

James Cook III · Buffalo Bills · Rushing · +6.08 total EPA · 16 snaps · +0.38 EPA/play - 2

Jerry Jeudy · Cleveland Browns · Receiving · +2.32 total EPA · 4 snaps · +0.58 EPA/play - 3

Ty Johnson · Buffalo Bills · Rushing · +2.25 total EPA · 3 snaps · +0.75 EPA/play - 4

Raheim Sanders · Cleveland Browns · Rushing · +1.79 total EPA · 11 snaps · +0.16 EPA/play - 5

Ryan Davis · Buffalo Bills · Receiving · +1.71 total EPA · 2 snaps · +0.86 EPA/play - 6

Tyleik Williams · Cleveland Browns · Receiving · +1.67 total EPA · 4 snaps · +0.42 EPA/play - 7

Tyleik Williams · Cleveland Browns · Rushing · +1.50 total EPA · 3 snaps · +0.50 EPA/play - 8

Malachi Corley · Cleveland Browns · Rushing · +1.30 total EPA · 3 snaps · +0.43 EPA/play
FantasyHQ Game MVP
Highest total EPA with the player's top snap and the game's biggest single play when different.

FantasyHQ Game MVP
James Cook III — BUF · Rushing
James Cook III posted the highest total EPA (+6.08) in the game, the strongest overall impact for Buffalo Bills. Across 16 counted snaps, they averaged +0.38 EPA per play.
James Cook III's top snap (+4.23 EPA): (7:58) 4-J.Cook up the middle for 44 yards, TOUCHDOWN.
Biggest single play (-6.18 EPA): Shedeur Sanders — (10:47) 12-S.Sanders pass short right intended for 83-M.Corley INTERCEPTED by 92-D.Jones (97-J.Bosa) at CLE 26. 92-D.Jones to CLE 25 for 1 yard (56-L.Wypler; 44-H.Fannin).
Quarterback report card
Shedeur Sanders led all passers in efficiency for Cleveland Browns, setting the tone in the passing game according to FantasyHQ analytics.

Shedeur Sanders (Cleveland Browns) · 37 dropbacks · 54.1% completion · +1.4% CPOE · -0.20 EPA/play · -7.28 total EPA
Jonathan Allen (Buffalo Bills) · 23 dropbacks · 52.2% completion · -0.9% CPOE · -0.34 EPA/play · -7.89 total EPA
Team stats comparison
Side-by-side offensive and defensive efficiency.
| Stat | ||
|---|---|---|
| Offensive EPA/play | -0.002 | -0.075 |
| Offensive success rate | 50.8% | 51.2% |
| Pass EPA/play | -0.343 | -0.269 |
| Rush EPA/play | +0.432 | +0.089 |
| Defensive EPA/play | +0.075 | +0.002 |
| Defensive success rate | 48.8% | 49.2% |
Drive & efficiency notes
Despite the final score, Buffalo Bills generated the better offensive EPA per play (-0.00 vs -0.07), suggesting they moved the ball more efficiently.
Season benchmark context (offensive EPA per play):
- Buffalo Bills: -0.00 EPA/play (45th percentile vs. 2025 team-game averages)
- Cleveland Browns: -0.07 EPA/play (29th percentile vs. 2025 team-game averages)
- Buffalo Bills: 10 drives, -0.10 total EPA, 4 scoring drives
- Cleveland Browns: 10 drives, -5.97 total EPA, 4 scoring drives
Who scored touchdowns and field goals
Every touchdown and field goal from official play-by-play.
Touchdowns

Cleveland Browns — Harold Fannin Jr. (Shedeur Sanders pass) 
Buffalo Bills — James Cook III - Buffalo Bills — unlisted player

Buffalo Bills — James Cook III 
Cleveland Browns — Harold Fannin Jr.
Field goals

Cleveland Browns — Andre Szmyt 
Buffalo Bills — Michael Badgley 
Cleveland Browns — Andre Szmyt
Quarter by quarter
Quarter-by-quarter recap from live scoring plays.
The opening quarter: The quarter finished even at 7–7. Cleveland Browns found the end zone from the BUF 13 (Q1 10:47) — (10:47) 12-S.Sanders pass short right to 44-H.Fannin for 13 yards, TOUCHDOWN.; Cleveland Browns added 1 points from the BUF 15 (Q1 10:42) — 25-A.Szmyt extra point is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez.; Buffalo Bills found the end zone from the CLE 44 (Q1 7:58) — (7:58) 4-J.Cook up the middle for 44 yards, TOUCHDOWN.; Buffalo Bills added 1 points from the CLE 15 (Q1 7:47) — 32-M.Badgley extra point is GOOD, Center-69-R.Ferguson, Holder-19-M.Wishnowsky..
The second quarter: Buffalo Bills won the period 13–3. Buffalo Bills found the end zone from the CLE 2 (Q2 12:57) — (12:57) (No Huddle) 26-Ty.Johnson up the middle for 2 yards, TOUCHDOWN.; Cleveland Browns connected on a field goal from the BUF 6 (Q2 5:41) — (5:41) 25-A.Szmyt 24 yard field goal is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez.; Buffalo Bills found the end zone from the CLE 3 (Q2 2:27) — (2:27) (No Huddle) 4-J.Cook up the middle for 3 yards, TOUCHDOWN.; Buffalo Bills added 1 points from the CLE 15 (Q2 2:23) — 32-M.Badgley extra point is GOOD, Center-69-R.Ferguson, Holder-19-M.Wishnowsky..
The third quarter: Cleveland Browns won the period 7–3. Buffalo Bills connected on a field goal from the CLE 23 (Q3 9:41) — (9:41) 32-M.Badgley 41 yard field goal is GOOD, Center-69-R.Ferguson, Holder-19-M.Wishnowsky.; Cleveland Browns found the end zone from the BUF 1 (Q3 1:39) — (1:39) 70-Z.Zinter and 98-A.Huntington reported in as eligible. 44-H.Fannin up the middle for 1 yard, TOUCHDOWN.; Cleveland Browns added 1 points from the BUF 15 (Q3 1:36) — 25-A.Szmyt extra point is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez..
The fourth quarter: Cleveland Browns won the period 3–0. Cleveland Browns connected on a field goal from the BUF 23 (Q4 8:50) — (8:50) 25-A.Szmyt 41 yard field goal is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez..
Turning points
Plays that moved win probability the most.
- Buffalo Bills (Q4 2:53) — (2:53) 17-J.Allen pass incomplete short right to 88-D.Knox.
- Cleveland Browns (Q4 5:08) — (5:08) (Shotgun) 12-S.Sanders sacked at CLE 31 for -13 yards (50-G.Rousseau).
- Cleveland Browns (Q1 3:03) — (3:03) (Shotgun) 12-S.Sanders pass short middle intended for 10-Q.Judkins INTERCEPTED by 21-J.Poyer at BUF 29. 21-J.Poyer to BUF 39 for 10 yards (56-L.Wypler).
- Buffalo Bills (Q1 7:58) — (7:58) 4-J.Cook up the middle for 44 yards, TOUCHDOWN.
- Cleveland Browns (Q3 10:47) — (10:47) 12-S.Sanders pass short right intended for 83-M.Corley INTERCEPTED by 92-D.Jones (97-J.Bosa) at CLE 26. 92-D.Jones to CLE 25 for 1 yard (56-L.Wypler; 44-H.Fannin).
Impact plays
Highest EPA snaps that flipped field position.
- Cleveland Browns (Q3 10:47) — (10:47) 12-S.Sanders pass short right intended for 83-M.Corley INTERCEPTED by 92-D.Jones (97-J.Bosa) at CLE 26. 92-D.Jones to CLE 25 for 1 yard (56-L.Wypler; 44-H.Fannin).
- Cleveland Browns (Q1 3:03) — (3:03) (Shotgun) 12-S.Sanders pass short middle intended for 10-Q.Judkins INTERCEPTED by 21-J.Poyer at BUF 29. 21-J.Poyer to BUF 39 for 10 yards (56-L.Wypler).
- Buffalo Bills (Q1 7:58) — (7:58) 4-J.Cook up the middle for 44 yards, TOUCHDOWN.
- Cleveland Browns (Q4 5:08) — (5:08) (Shotgun) 12-S.Sanders sacked at CLE 31 for -13 yards (50-G.Rousseau).
Every scoring play
Chronological scoring with play-by-play context.
Cleveland Browns TD (+6) — Q1 10:47 · BUF 13 · Score 0-6
(10:47) 12-S.Sanders pass short right to 44-H.Fannin for 13 yards, TOUCHDOWN.
Cleveland Browns XP (+1) — Q1 10:42 · BUF 15 · Score 0-7
25-A.Szmyt extra point is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez.
Buffalo Bills TD (+6) — Q1 7:58 · CLE 44 · Score 6-7
(7:58) 4-J.Cook up the middle for 44 yards, TOUCHDOWN.
Buffalo Bills XP (+1) — Q1 7:47 · CLE 15 · Score 7-7
32-M.Badgley extra point is GOOD, Center-69-R.Ferguson, Holder-19-M.Wishnowsky.
Buffalo Bills TD (+6) — Q2 12:57 · CLE 2 · Score 13-7
(12:57) (No Huddle) 26-Ty.Johnson up the middle for 2 yards, TOUCHDOWN.
Cleveland Browns FG (+3) — Q2 5:41 · BUF 6 · Score 13-10
(5:41) 25-A.Szmyt 24 yard field goal is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez.
Buffalo Bills TD (+6) — Q2 2:27 · CLE 3 · Score 19-10
(2:27) (No Huddle) 4-J.Cook up the middle for 3 yards, TOUCHDOWN.
Buffalo Bills XP (+1) — Q2 2:23 · CLE 15 · Score 20-10
32-M.Badgley extra point is GOOD, Center-69-R.Ferguson, Holder-19-M.Wishnowsky.
Buffalo Bills FG (+3) — Q3 9:41 · CLE 23 · Score 23-10
(9:41) 32-M.Badgley 41 yard field goal is GOOD, Center-69-R.Ferguson, Holder-19-M.Wishnowsky.
Cleveland Browns TD (+6) — Q3 1:39 · BUF 1 · Score 23-16
(1:39) 70-Z.Zinter and 98-A.Huntington reported in as eligible. 44-H.Fannin up the middle for 1 yard, TOUCHDOWN.
Cleveland Browns XP (+1) — Q3 1:36 · BUF 15 · Score 23-17
25-A.Szmyt extra point is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez.
Cleveland Browns FG (+3) — Q4 8:50 · BUF 23 · Score 23-20
(8:50) 25-A.Szmyt 41 yard field goal is GOOD, Center-50-R.Sunahara, Holder-13-C.Bojorquez.
Key takeaways
What to remember for fantasy research and follow-up box score digging.
- Buffalo Bills earned the result — use the box score for snap-level context.
- One-score margin — verify garbage-time stats before drawing fantasy conclusions.
- James Cook III (Buffalo Bills) led total EPA — start here for highlight and prop research.
Frequently asked questions
Who won Buffalo Bills vs Cleveland Browns on 2025-12-21?
The Buffalo Bills beat the Cleveland Browns 23-20 in Week 16, 2025.
What was the score by quarter in Buffalo Bills vs Cleveland Browns?
Q1: Buffalo Bills 7, Cleveland Browns 7; Q2: Buffalo Bills 13, Cleveland Browns 3; Q3: Buffalo Bills 3, Cleveland Browns 7; Q4: Buffalo Bills 0, Cleveland Browns 3; Final: Buffalo Bills 23, Cleveland Browns 20.
Who scored touchdowns and field goals in Buffalo Bills vs Cleveland Browns?
Cleveland Browns touchdown — H. Fannin (S. Sanders pass) (Q1 10:47) Buffalo Bills touchdown — J. Cook (Q1 7:58) Buffalo Bills touchdown — unlisted player (Q2 12:57) Buffalo Bills touchdown — J. Cook (Q2 2:27) Cleveland Browns touchdown — H. Fannin (Q3 1:39) Cleveland Browns field goal — A. Szmyt (Q2 5:41, 3 pts) Buffalo Bills field goal — M. Badgley (Q3 9:41, 3 pts) Cleveland Browns field goal — A. Szmyt (Q4 8:50, 3 pts) Extra points followed each touchdown unless noted in the play-by-play.
How did the quarterbacks play in Buffalo Bills vs Cleveland Browns?
Shedeur Sanders (Cleveland Browns), 54.1% completion, +1.4% CPOE, -0.20 EPA per dropback, -7.28 total passing EPA. Jonathan Allen (Buffalo Bills), 52.2% completion, -0.9% CPOE, -0.34 EPA per dropback, -7.89 total passing EPA.
Who was FantasyHQ's player of the game in Buffalo Bills vs Cleveland Browns?
James Cook III (Buffalo Bills) was FantasyHQ's Game MVP with +6.08 total EPA on Rushing plays. across 16 snaps. Their top snap (+4.23 EPA): (7:58) 4-J.Cook up the middle for 44 yards, TOUCHDOWN..
Was Buffalo Bills vs Cleveland Browns a close game?
Yes — the margin was 3 points. Buffalo Bills won 23-20 in a game that came down to the wire.
Season records after this game
Buffalo Bills
Entered 10-4 Now 11-4 W
Cleveland Browns
Entered 3-11 Now 3-12 L