The San Francisco 49ers’ defense took the field first in tonight’s matchup, setting the tone early. As the game began, flurries of snow began falling, gradually intensifying as the Niners’ offense took the ball. Despite the conditions, the defense wasted no time forcing a three-and-out on the opening drive.
On offense, the 49ers made some headway with a 19-yard rush by Christian McCaffrey and an 11-yard carry from Jordan Mason, but a miscommunication between quarterback Brock Purdy and McCaffrey on a third-and-seven in the red zone led to an incompletion. This resulted in a 33-yard field goal by Jake Moody, giving the 49ers a 3-0 lead.
Although it looked like the defense was about to force another quick three-and-out, a controversial penalty on cornerback Charvarius Ward for illegal use of hands changed the course of Buffalo’s drive. At first glance, it appeared that rookie Renardo Green might have been the one to commit the infraction. Regardless, the penalty gave Buffalo a fresh set of downs, and quarterback Josh Allen capitalized, connecting with a backup tight end for 15 yards and using his legs to scramble for a first down. The Bills soon found themselves deep in Niners’ territory.
Buffalo capped off a 13-play drive, with 10 of those plays being runs, including a crucial 13-yard gain by Ray Davis on a third-and-one. Davis followed that with a five-yard touchdown run, putting the Bills ahead 7-3 by the end of the first quarter.
The 49ers’ offense responded with a solid start to their next drive, as McCaffrey caught a swing pass for 12 yards and then rushed for another 12 yards. The offense quickly moved into Buffalo territory, but McCaffrey’s night would end abruptly. He suffered a knee injury on his final carry, a heartbreaking development for a player who had worked so hard to return to full health. After a delay of game penalty, the offense stalled, and Jake Moody’s 45-yard field goal attempt missed wide left.
The defense tried to regroup, but disaster struck when safety Ji’Ayir Brown missed a tackle on James Cook, who broke free for a 65-yard run untouched, giving the Bills a 14-3 lead. The 49ers tried to answer back with some strong runs from Jordan Mason, who picked up 28 yards on a first down and then six yards on a third-and-four. The Niners again found themselves in Buffalo territory, but a sack on third-and-nine put an end to the drive.
While it wasn’t the worst-case scenario, Pat O’Donnell’s punt pinned Buffalo deep at their own three-yard line. However, Josh Allen quickly erased any hopes of a Niners comeback. Allen connected with Dalton Knox for 39 yards, and then Cook ripped off runs of 18 and 11 yards to bring the Bills into San Francisco territory. Cook added another 13-yard run, and before long, Buffalo was inside the Niners’ 10-yard line. Allen then threw a perfect pass to Mack Hollins for a touchdown, capping off a 97-yard drive and giving the Bills a commanding 21-3 lead.
The 49ers once again made it into field goal range, thanks to a 17-yard reception by Jauan Jennings, but Moody’s 55-yard attempt came up short. That sent the teams into halftime with the Niners still struggling to score.
The second half began with Deebo Samuel delivering a 60-yard kick return, setting up good field position. Jennings followed with a 14-yard gain, and Mason added nine more, putting the 49ers in the red zone. The offensive line, which had been dominant throughout the night, continued to open holes for Mason. However, disaster struck on first-and-goal from the four-yard line, when fullback Kyle Juszczyk had the ball stripped by safety Taylor Rapp. Instead of cutting the deficit to 21-10, the 49ers were forced to settle for yet another missed opportunity.
Though the offense had consistently moved the ball into Buffalo territory, it had been unable to finish drives, with only three points to show for their efforts. That lack of execution in the red zone was a recurring theme for the Niners this season.
Both teams exchanged three-and-outs, but the 49ers’ offense continued to stall. Jennings dropped a pass on first down, and George Kittle, who had been absent from the game until the first play, dropped a screen pass on third down. Buffalo, benefiting from a short field, capitalized with another successful drive. On fourth-and-two, the Niners failed to cover receiver Khalil Shakir, and on first-and-goal, Amari Cooper caught a pass and lateraled it to Allen for an impressive touchdown, further extending the lead to 28-3.
Deebo Samuel gave the Niners another short field with a 42-yard kick return. This marked the sixth consecutive trip into Buffalo territory. Would the offense finally convert? Ricky Pearsall’s first target was incomplete after he slipped trying to catch the ball, and while Jennings picked up 26 yards to put the offense in the red zone, the 49ers were unable to capitalize. However, running back Isaac Guerendo burst around the left side for a 13-yard touchdown run, cutting the deficit to 28-10.
Down by 18, the 49ers’ defense forced another three-and-out, giving the offense a slight glimmer of hope. But on third-and-five, Brock Purdy fumbled the ball, a costly mistake that allowed Buffalo to extend their lead even further. Josh Allen capitalized with another rushing touchdown, and on the ensuing kickoff, Samuel fumbled the return, marking the third turnover of the night for San Francisco.
Buffalo missed a 49-yard field goal attempt, but with the game firmly out of reach, Purdy remained in the game despite the blowout. Given the score, it would have made more sense to put in backup Josh Dobbs to avoid further damage to the future of the franchise. Unfortunately, the offense went three-and-out again, emphasizing the ineffectiveness of the 49ers’ offensive efforts all night.
This game was always going to be tough for the 49ers, who were missing several key players, including defensive stars Nick Bosa, Trent Williams, and Deommodore Lenoir. Fred Warner also appeared to be playing through an ankle injury, further weakening an already depleted roster. However, it was clear that injuries were not the sole reason for the 49ers’ dismantling. Purdy, despite returning to action, finished the game with just 94 yards on 18 attempts. More importantly, the Niners’ offense showed no real identity in the red zone, while Buffalo averaged over seven yards per play, even into garbage time. The 49ers’ performance, which was lacking in execution and urgency, mirrored the actions of a team that had given up rather than one fighting for a playoff spot.