It was a Buffalo blowout in the snow on Week 13 of Sunday Night Football.
The Bills easily routed a depleted San Francisco 49ers team 35-10, with more injuries following for the latter.
San Francisco started positively with a field goal on its first drive, but Kyle Shanahan couldn't keep that going with Christian McCaffrey later going down with a non-contact knee injury.
Buffalo took control of the game in the second quarter to take a 21-3 halftime lead, which ballooned in the second half as San Francisco couldn't hold onto the ball in a second straight embarrassing display.
Get top local stories in Philly delivered to you every morning. Sign up for NBC Philadelphia's News Headlines newsletter.
The Bills moved to 10-2 and secured the AFC East title, the first team to win a division this season. San Francisco fell to 5-7, still last in a rather weaker NFC West.
Let's analyze the game further with winners and losers:
WINNER: Josh Allen, Bills
Josh Allen has proven there's not much he can't do. That continued Sunday when he ended up recording a passing and receiving touchdown in the same play.
With a rushing touchdown later in the game, Allen became the first QB in league history to record three types of touchdowns in a single game. He would've completed the cycle by returning a kick or punt to the end zone.
Josh Allen is the first QB in NFL history to catch a TD, run for a TD and pass for a TD in a single game. #BillsMafia pic.twitter.com/bsyk3No44l
— Sunday Night Football on NBC (@SNFonNBC) December 2, 2024
He finished with 13 of 17 completions for 148 yards, two touchdowns and no picks through the air. Not a bad showing against his favorite team growing up.
LOSER: Kyle Shanahan, 49ers
Shanahan endured some dark times in his early days in San Francisco. The past wounds have returned in new ways.
With injuries mounting, including Brock Purdy not being 100%, the 49ers have struggled to execute just the basics. Purdy didn't eclipse 100 passing yards (94), with Deebo Samuel Sr. and George Kittle tallying just 20 and seven receiving yards, respectfully.
Purdy, Samuel Sr. and Kyle Juszczyk all lost fumbles in the snow, with a punt return also being returned for a touchdown before being wiped out by a holding penalty.
Given the tough schedule still to come, the 49ers might be better off focusing on draft positioning and retooling for 2025.
WINNER: Running games
Snow games always means running backs are about to earn their respective paychecks. Both ground games generated significant yardage, though Buffalo's proved more sustainable over four quarters.
Buffalo totaled 220 ground yards with a 5.8 average per carry. James Cook surpassed 100 yards thanks to a 65-yard touchdown run, while Ray Davis added 63 and a score.
San Francisco tallied 153 behind 78 from Jordan Mason and 53 from McCaffrey before his exit. McCaffrey averaged 7.6 yards a carry on seven attempts.
LOSER: Kickers
It was the opposite story for kickers. Buffalo's Tyler Bass didn't need to do much besides extra points, though he missed his only actual attempt from 49 yards out.
49ers' Jake Moody, who continues to be inconsistent in his sophomore season, went 1-for-3. Making them wouldn't have changed much on the scoreboard, but his misses remain a recurring problem.
LOSER: 49ers' playoff hopes
While the Bills will play deep in January, the reigning NFC champions might be done after Week 18.
The 49ers host the Chicago Bears and Los Angeles Rams in back-to-back games, travel to the Miami Dolphins, host the Detroit Lions and close out away to the Arizona Cardinals.
Given their current form, it's difficult seeing the 49ers win another game, let alone enough to sneak into the back end of the playoffs. A similar dip happened after San Francisco lost the Super Bowl in 2020 to the Kansas City Chiefs, suffering an injury-riddled campaign. History is repeating itself, though there's no telling what the future holds.