Bills 2025 Season in Review
2025 NFL Season · Monday, May 11
12-5 regular season
The full episode, in writing
James Cook ran for 358 yards over expected this season — second among all qualified running backs in the league. That's the number that defines Buffalo's 2025. Here's how the Bills built the best rushing attack in football, why Josh Allen quietly had a top-10 passing year that didn't feel that way, and the one side of the ball that kept this team from going further. 12 five. Fifth seed in the AFC. A wild card win in Jacksonville, then a three-point heartbreaker in Denver in the Divisional Round. The Bills smashed on the ground all year — and got muffed by a Broncos team that punched them in the mouth in January.
Let's set the table with the team-level numbers. Buffalo's offense posted +144.4 total expected points added — how much every snap improved their chances of scoring across the season — third in the league. The defense came in at +13, allowing −15.5 expected points added, league-average territory. The real signature: a third-down conversion rate of 46.3 percent, fourth in the league, and a red-zone touchdown rate of 72.3 percent, third. When the Bills crossed the 20, they scored seven, not three. Add it up — 76 percent of their scoring drives ended in touchdowns, the highest share in football. And the consistency was real. Outside of a Week 10 trip to Miami where they got smoked 30 to 13 and a Week 17 stinker against Philadelphia, they hit 23 points or more in every game. Steady floor, week in, week out.
Now let's talk about the passing offense. Josh Allen threw for 3668 yards, 25 touchdowns, 10 interceptions, and added +86.8 passing expected points added — seventh in the league. His completion percentage was 69.4 against an expected 67.8, so +1.5 percent above what an average quarterback would've completed on the same throws. Solid, not spectacular by his standards — but the passing game's identity wasn't about volume. It was about finishing drives. Allen also ran for 14 touchdowns, tied for third in the league among all players. What kept this unit from elite-elite status: 40 sacks allowed on 593 dropbacks, a 6.8 percent sack rate that's middle of the pack. Pressure got home, and the Bills wore it. The receiver room was a true committee — Khalil Shakir led the team with 72 catches for 719 yards and four touchdowns, with air yards spread across the rest of the room. No single receiver carried this passing game. Allen did.
Now let's dig into the rushing offense. This is the headline of the season. Buffalo averaged five yards per carry — first in the league, the only team in football at five flat — and posted +41.3 rushing expected points added, second in the league. 159.7 rushing yards per game. 30 rushing touchdowns. The Bills didn't just run well — they ran at an elite level every single week. And James Cook was the engine: 309 carries, 1621 yards, 5.3 a pop, 12 rushing touchdowns. His +358.2 rushing yards over expected — that much more than an average back would have gained on the same carries — was second among qualified runners in the league. The defining moment came in Week 8 at Carolina, second and four in the second quarter: Cook took a handoff through left guard and went 64 yards untouched to the end zone. That run was the season in microcosm — explosive, decisive, and the Bills were never in a one-score game again that day. They won 40 to nine.
Next up, the pass defense. This is where the story gets more complicated. Buffalo allowed −57.4 passing expected points added — and remember, on defense a big negative number is good, so this unit was genuinely above-average against the pass, around the 70-eighth percentile in the league. They generated 36 sacks, twentieth in the league, and 21 total takeaways — 13 interceptions +8 fumble recoveries, middle of the pack. Not dominant, but huge plays in huge spots. The clearest example: Week 14 against Cincinnati, fourth quarter, 28 to 25 Bengals, Joe Burrow throws a short right intended for Ja'Marr Chase and cornerback Christian Benford jumps it — 63 yards the other way for a touchdown. That single play swung the game, the Bills won 39 to 34, and it captured the unit's identity. They didn't smother offenses week to week. They took the ball away when it mattered most.
And the run defense — this is where Buffalo got muffed. The Bills allowed +41.9 rushing expected points added on defense, and remember, on defense you want negative. A positive number that big puts this unit in the sixth percentile of the league — bottom of the barrel. 24 rushing touchdowns surrendered. 2320 yards allowed on the ground over 17 games. That's where the Denver loss in the Divisional Round traces back to, and it's where the losses to Atlanta in Week 6, Miami in Week 10, and Houston in Week 12 all share DNA. When teams committed to running the ball against Buffalo, they moved it.
The Bottom Line
Season MVP is James Cook — 309 carries, 1621 yards, 12 rushing touchdowns, and +358.2 rushing yards over expected, second in the entire league. He was the heartbeat of the best rushing attack in football. The one thing Buffalo has to fix: the run defense. +41.9 rushing expected points added allowed is a sixth-percentile number, and surrendering 24 rushing touchdowns over 17 games is how a 12-win team becomes a Divisional Round exit.
Every Bills episode
Season reviews, draft recaps and every game recap, in one place.