The Buffalo Bills 2025 season ended much like several over the past decade: with playoff heartbreak.
Buffalo fell to the Denver Broncos 33-30 in the AFC divisional round of the playoffs. The playoff thriller ended with a short Will Lutz field goal in overtime, leaving Buffalo once again thinking, “What could have been?”
Advertisement
Here is how Bills Wire grades the Bills’ loss to the Broncos:
Pass offense: C-
Buffalo Bills quarterback Josh Allen is all smiles after getting up after about a 15-yard run during first half action at Empower FIeld at Mile High in Denver, Colorado on Jan. 17, 2026.
The best way to describe Allen during this game: inconsistent. He did Josh Allen things: extending plays, moving the pocket, and making pinpoint-accurate throws to his receivers. However, evil Josh reared its ugly head at times, with two interceptions and two fumbles. Of those four turnovers, two were particularly egregious: the fumble at the end of the first half and his first interception. He also had multiple throws that were off target, none as great as the late-game miss to Dawson Knox.
Khalil Shakir had another solid afternoon for the Bills, leading Buffalo with seven receptions. Shakir totaled 75 yards through the air, and he had a game-best 46 catch-and-run. Dalton Kincaid led the Bills in yards with 83. Kincaid reeled in six receptions, including a nice touchdown at the boundary.
Advertisement
As a common theme this season, Buffalo’s boundary receivers were MIA. Brandon Cooks had two catches for 20 yards. He also had one of the most controversial non-catches in team history, when Ja’Quan McMillian ripped the ball away from him in overtime. Mecole Hardman and Keon Coleman caught one pass each, good for a touchdown. However, they were largely invisible in the game.
Run offense: A-
Buffalo Bills running back James Cook III finds an opening and follows guard David Edwards during second half action at Empower FIeld at Mile High in Denver, Colorado on Jan. 17, 2026.
Buffalo had some solid success onthe ground. Cook had a (mostly) solid day, rushing 24 times for 117 yards. Allen added 12 carries for 66 yards. The duo combined for 183 yards, the most gained against a vaunted Denver defense.
Advertisement
However, Cook’s fumble was just another play in a long line of miscues that ultimately built up and determined the outcome of this game. It was at a pivotal moment with the Bills driving deep into Broncos territory. In a game where every point mattered, not having a chance to at least attempt a field goal was disappointing.
Pass defense: C+
Justin Edmonds/Getty Images
Gosh, this could have been so much higher if things played out differently in overtime. The defense was on its heels all game long, as Buffalo’s offense had little trouble giving the ball to the Broncos. Denver scored 16 points off five Buffalo turnovers, which seems pretty good for a team that was -4 in the turnover battle.
Advertisement
The touchdowns the Bills gave up were sobering. Lil’ Jordan Humprey and Marvin Mims Jr. smoked a depleted Buffalo secondary.
Buffalo did force an interception, as Deone Walker snagged a screen pass from Bo Nix.
Buffalo gave up 279 total passing yards. However, the unit, which was down to what felt like its 20th defensive back of the season, kept the Bills in the game.
However, we can’t ignore how the final drive played out. The final two pass interference calls put the Broncos in prime real estate for a field goal. An unsportsmanlike call added to the frustration.
Buffalo’s pass rush recorded exactly zero sacks, which is a problem for a defense that really needed to help out its secondary.
Advertisement
Run defense: B+
DENVER, COLORADO – JANUARY 17: Deone Walker #96 of the Buffalo Bills runs with the ball after an interception against Bo Nix #10 of the Denver Broncos in the AFC Divisional Playoff game at Empower Field At Mile High. (Photo by Justin Edmonds/Getty Images)
As a whole, Buffalo kept the Denver run game under wraps. The trio of RJ Harvey, Jaleel McLaughlin, and Bo Nix averaged only 3.2 yards on 22 carries.
The biggest knock on the group was that they let Denver gain positive yards when Buffalo could’ve registered no gains or tackles for loss. The number of missed tackles, another common theme this year, was massively concerning for this group.
Special teams: A-
Buffalo Bills place kicker Matt Prater makes the field goal sending the game into overtime during second half action at Empower FIeld at Mile High in Denver, Colorado on Jan. 17, 2026.
Matt Prater had another perfect day. He was perfect on all six kicks (three PATS and three field goals), including a 50-yarder to tie the game late in the fourth quarter.
In addition, Mitch Wishnowsky did not punt during the game. He handled kickoff duties fine for the Bills. Buffalo allowed 22.7 yards per return, a solid number for this game.
Advertisement
Buffalo’s return game was adequate. There was nothing to write home about, but it was solid enough. Ray Davis averaged 28 yards on five returns and Hardman had a return of 22 yards.
Coaching: B
Jan 17, 2026; Denver, CO, USA; Buffalo Bills head coach Sean McDermott during the second quarter of an AFC Divisional Round playoff game against the Denver Broncos at Empower Field at Mile High. Mandatory Credit: Ron Chenoy-Imagn Images
The actual game plan seemed to work. Joe Brady did a solid job with keeping the Broncos off balance. Buffalo totaled 449 yards of offense. Buffalo had the best rushing day against the Denver defense this season, and the passing game worked for the most part.
Defensively, the Bills did a much better job in the second half. Buffalo put more pressure on Nix, which probably should’ve been the plan from the onset of the game. The pressure kept Nix from getting comfortable after halftime. It was only when Buffalo’s fourth-stringers hit the field that Nix regained control of the game.
Advertisement
The aggressiveness at the end of the first half did, however, cost Buffalo. Allen fell into 2019 mode and made a horrendous decision with little time remaining on the clock. The fumble game gave the Broncos an opportunity for three points, and they converted.
McDermott gave the officials as much time as possible to review the Cooks non-catch in overtime. However, this one falls on the players, as their mistakes keep the game much closer than it needed to be.
This article originally appeared on Bills Wire: Report card: Bills end season with divisional loss to Broncos