SANTA CLARA, CA - The San Francisco 49ers held off the Carolina Panthers 28-23 in a thrilling Week 12 contest. San Francisco’s potent ground game and red zone efficiency overcame Carolina’s high-yardage passing attack, delivering a hard-fought win for the home team.
49ers' Ground Game Dominates
San Francisco leaned heavily on their rushing attack, amassing an impressive 197 rushing yards on the day. Christian McCaffrey led the charge with 145 yards on 24 carries, including a long run of 32 yards and two broken tackles, showcasing his ability to consistently gain yards after contact. Brian Robinson Jr. added a touchdown on the ground with 35 yards on eight carries, complementing the balancing act in the rushing attack. Quarterback Brock Purdy contributed modestly on the ground with four yards on two attempts.
Efficient Passing and Red Zone Execution
Brock Purdy threw for 211 yards, completing 19 of 31 passes and tallying three touchdowns despite one interception. The 49ers converted on a resounding 75% of their third downs, scoring touchdowns on all four of their red zone trips, highlighting their offensive efficiency. Tight end George Kittle was a reliable target, hauling in six catches for 72 yards while maintaining a perfect catch rate. Kyle Juszczyk contributed both receiving-one touchdown on a 3-yard catch-and rushing, accounting for 18 yards on two carries.
Panthers' Passing Attack Makes Noise but Falls Short
The Panthers posted 297 passing yards, propelled by Bryce Young, who completed 13 of 25 attempts with three touchdowns and no interceptions, and a passer rating of 134.4. Wide receiver Chuba Hubbard was a key target with five receptions for 122 yards and a touchdown, showing explosiveness with 112 yards after the catch. Notably, wide receivers Xavier Legette and Jimmy Horn Jr added significant yardage with 65 and 41 receiving yards respectively, including multiple big-play receptions. Despite their passing success, Carolina struggled in the red zone, failing to convert any of their three trips into touchdowns or field goals.
Defensive Highlights and Turnover Battle
The 49ers defense applied pressure and limited Carolina in scoring opportunities, recording one sack and holding the Panthers to just 6 rushing yards on the day. While San Francisco's defense did not record any interceptions, they maintained tight coverage and minimized big plays. Carolina’s defense forced one fumble recovered and also picked off one pass, but it was not enough to offset the 49ers' balanced attack and red zone efficiency.
Up Next
San Francisco will travel to face the Cleveland Browns in Week 12, aiming to extend their winning streak against a challenging opponent. Carolina prepares to host the Los Angeles Rams, seeking redemption after this narrow loss.
Stats
Passing
Carolina Panthers
Player |
qbr |
com/att |
pct |
yds |
lng |
td |
int |
sck |
|---|---|---|---|---|---|---|---|---|
| B.Young #9 | 134.4 | 13 / 25 | 52.0 | 297 | 68 | 3 | 0 | 1 |
| TEAM | - | 13 / 25 | 52.0 | 297 | 68 | 3 | 0 | 1 |
Rushing
Carolina Panthers
Player |
att |
yds |
lng |
td |
avg |
big |
yac |
|---|---|---|---|---|---|---|---|
| C.Hubbard #30 | 4 | 7 | 6 | 0 | 1.8 | 0 | 5 |
| T.Etienne #23 | 0 | 0 | 0 | 0 | 0.0 | 0 | 0 |
| T.McMillan #4 | 1 | -1 | 0 | 0 | -1.0 | 0 | 0 |
| TEAM | 5 | 6 | 6 | 0 | 1.2 | 0 | 5 |
Receiving
Carolina Panthers
Player |
rec |
yds |
avg |
td |
yac |
lng |
drop |
|---|---|---|---|---|---|---|---|
| C.Hubbard #30 | 5 | 122 | 24.4 | 1 | 112 | 68 | 0 |
| X.Legette #17 | 2 | 65 | 32.5 | 0 | 4 | 51 | 0 |
| T.McMillan #4 | 1 | 57 | 57.0 | 1 | 0 | 57 | 0 |
| J.Horn Jr #15 | 1 | 41 | 41.0 | 1 | 9 | 41 | 0 |
| H.Renfrow #13 | 3 | 10 | 3.3 | 0 | 2 | 4 | 0 |
| J.Sanders #0 | 1 | 2 | 2.0 | 0 | 1 | 2 | 0 |
| T.Tremble #82 | 0 | 0 | 0.0 | 0 | 0 | 0 | 1 |
| TEAM | 13 | 297 | 22.8 | 3 | 128 | 68 | 1 |
Defense
Carolina Panthers
Player |
tckl |
sck |
pdef |
int |
int yds |
td |
ff |
ffr |
|---|---|---|---|---|---|---|---|---|
| C.Smith-Wade #26 | 3 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| D.Wonnum #98 | 2 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| D.Richardson #36 | 3 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| K.White #41 | 2 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| C.Cherelus #53 | 1 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| C.Rozeboom #56 | 0 | 0.0 | 1 | 0 | 0 | 0 | 0 | 0 |
| N.Scourton #11 | 2 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| D.Johnson #52 | 2 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| M.Jackson #2 | 2 | 0.0 | 2 | 1 | 15 | 0 | 0 | 1 |
| K.Barnes #40 | 5 | 0.0 | 1 | 0 | 0 | 0 | 0 | 0 |
| V.Bell #31 | 1 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| T.Wharton #92 | 3 | 0.0 | 0 | 0 | 0 | 0 | 1 | 0 |
| J.Horn #8 | 4 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| D.Brown #95 | 2 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| T.Moehrig #7 | 3 | 0.0 | 2 | 0 | 0 | 0 | 1 | 0 |
| TEAM | 35 | 0.0 | 6 | 1 | 15 | 0 | 2 | 1 |
Kicking
Carolina Panthers
Player |
fg |
fg pct |
lng |
xp |
xp pct |
50+ |
50+ pct |
|---|---|---|---|---|---|---|---|
| G.Zuerlein #19 | 1 / 1 | 100.0 | 39 | 2 / 2 | 100.0 | 0 / 0 | 0.0 |
| TEAM | 1 / 1 | 100.0 | 39 | 2 / 2 | 100.0 | 0 / 0 | 0.0 |
Punting
Carolina Panthers
Player |
punts |
yds |
avg |
tb |
in20 |
lng |
blk |
|---|---|---|---|---|---|---|---|
| S.Martin #6 | 4 | 174 | 35.0 | 1 | 0 | 47 | 0 |
| TEAM | 4 | 174 | 43.5 | 1 | 0 | 47 | 0 |



