ORCHARD PARK, N.Y. — These are the cold, hard facts.
The 49ers received another snowball upside their heads — figuratively and, perhaps, literally — when the Buffalo Bills hit them with a 35-10 beatdown at snowy Highmark Stadium.
Their second blowout loss in a row played out in front of a national television audience on Sunday night.
Stay in the game with the latest updates on your beloved Bay Area and California sports teams! Sign up here for our All Access Daily newsletter.
It was the second blowout loss the 49ers absorbed in back-to-back trips to Green Bay and Buffalo — the two coldest-weather locales in the NFL. A week ago, the 49ers lost to the Packers, 38-10.
The 49ers lost back-to-back games by 25 points or more for only the fourth time in franchise history and the first time since 2015 when the Jim Tomsula-coached team was blasted by Pittsburgh (43-18) and Arizona (47-7) in Weeks 2 and 3.
Here is the report card from their Week 13 loss to the Bills:
Rushing offense
San Francisco 49ers
Find the latest San Francisco 49ers news, highlights, analysis and more with NBC Sports Bay Area and California.
The 49ers felt their best chance of winning this game was to run the ball down the throats of a Bills defense that is susceptible on the ground.
San Francisco largely succeeded in that area. Christian McCaffrey gained 53 yards on seven carries before leaving with a potentially season-ending injury to the posterior cruciate ligament in his right knee.
Jordan Mason led the 49ers with 78 yards on 13 carries. Isaac Guerendo added 19 yards and a touchdown on four attempts.
Isaac Guerendo gets the 49ers in the end zone 🙌 pic.twitter.com/ZGSHRE6U5G
— 49ers on NBCS (@NBCS49ers) December 2, 2024
On the negative side, fullback Kyle Juszczyk fumbled at the goal line in the third quarter to prevent the 49ers from closing the gap to a two-score game.
Grade: C-plus
Passing offense
First, the 49ers’ passing game gets credit for not committing any turnovers.
Brock Purdy committed one giveaway when the ball slipped out of his hand as he attempted to throw a pass on the first play of the fourth quarter.
Jauan Jennings had 56 yards receiving on three catches.
Fourth and Jauan 😤 pic.twitter.com/6htpbNFywn
— 49ers on NBCS (@NBCS49ers) December 2, 2024
Tight end George Kittle caught a 7-yard pass from Purdy on the 49ers’ first offensive play of the game. He did not have another reception the entire game.
Purdy completed 11 of 18 passes for 94 yards with no touchdowns and no interceptions.
Grade: D
Rushing defense
The game turned in the second quarter when the 49ers’ run defense was gashed for James Cook’s 65-yard touchdown run. On that play, linebacker Jalen Graham and safety Ji’Ayir Brown had their chances to stop Cook near the line of scrimmage.
Cooks had 100 yards rushing on nine carries in the first half.
Quick 65-yard run to celly with a snow angel.
— Buffalo Bills (@BuffaloBills) December 2, 2024
📺: @SNFonNBC pic.twitter.com/N0aAWEEHjQ
The Bills finished the game with 220 rushing yards on 38 carries for a gaudy 5.8-yard average.
Grade: F
Passing defense
The Bills did not throw too much but they succeeded whenever Josh Allen dropped back to throw.
Allen’s big arm helped him cut through the wind against the 49ers’ short-handed defense.
Allen completed 13 of 17 pass attempts for 148 yards with two touchdowns and no interceptions. He had a passer rating of 141.3. Allen was even credited with a touchdown pass to himself when Amari Cooper lateraled the ball back to him after a short third-quarter pass.
THIS IS THE MOST RIDICULOUS THING WE HAVE EVER SEEN.
— Buffalo Bills (@BuffaloBills) December 2, 2024
📺: @SNFonNBC pic.twitter.com/LzaOt3MDLj
The 49ers got only one hit on Allen, and that came from undrafted rookie Evan Anderson in his first start.
Grade: F
Special teams
It’s difficult to place too much blame on kicker Jake Moody, considering the weather conditions.
But he did miss field goals of 45 and 55 yards in the first half.
Deebo Samuel tried to give the 49ers a spark to open the second half with a 60-yard kickoff return. But he also lost a fumble on a kickoff return early in the fourth quarter.
Grade: D
Coaching
The 49ers had the right idea to keep the ball on the ground. But one highly debatable decision that killed the 49ers came when coach Kyle Shanahan put the ball in the hands of a player who had just three carries coming into the game.
Fullback Kyle Juszczyk fumbled on a first-and-goal play from the Buffalo 4-yard line early in the third quarter when Taylor Rapp punched the ball loose.
Goal line stand. 😤
— Buffalo Bills (@BuffaloBills) December 2, 2024
📺: @SNFonNBC pic.twitter.com/hJ0qQi4W51
Granted, Mason was out of the game. But rookie running back Isaac Guerendo, who entered the game with 38 carries this season, should have gotten the call over Juszczyk.
But, clearly, that play call did not cost the 49ers the game. Generally, the 49ers had the right idea from a tactical standpoint. They just did not have the players to compete with the Bills.
Grade: C-minus
Overall
Did you expect anything else?
The 49ers have not been good this season, period. And they were short-handed and going up against one of the best NFL teams.
A botched play from the 49ers’ run defense while Fred Warner was out of the game and a fumble at the goal line were the plays that stood out and prevented them from keeping it close.
The loss drops the 49ers (5-7) another game behind the Seattle Seahawks (7-5) in the NFC West.
Grade: F