In the glittering world of the NFL, where primetime lights turn ordinary matchups into lasting football stories, this Carolina and San Francisco meeting felt like a rugged test. The 49ers defeated the Panthers 20-9, but the game was less about smooth offense and more about patience, possession, and Christian McCaffrey’s steady production against his former team. Carolina Panthers vs San Francisco 49ers Match Player Stats reveal how San Francisco overcame mistakes and Carolina missed chances.
Quick Bio
| Detail | Information |
|---|---|
| Article Focus | Carolina Panthers vs San Francisco 49ers Match Player Stats |
| Matchup | Carolina Panthers at San Francisco 49ers |
| Competition | NFL Regular Season |
| Week | Week 12 |
| Date | November 24, 2025 |
| Venue | Levi’s Stadium |
| Location | Santa Clara, California |
| Final Score | 49ers 20, Panthers 9 |
| Winning Team | San Francisco 49ers |
| Key Offensive Player | Christian McCaffrey |
| Key Defensive Player | Ji’Ayir Brown |
| Main Storyline | San Francisco controlled the game despite turnovers |
Game Overview
Carolina Panthers vs San Francisco 49ers Match Player Stats show that this was not a clean win for San Francisco, but it was a controlled one. The 49ers led 7-0 after the first quarter, held a 10-3 halftime advantage, added another touchdown in the third, and kept Carolina scoreless in the fourth. The Panthers had moments of life through a third-quarter touchdown, but they could not turn defensive takeaways into enough points. San Francisco’s edge came from long drives, stronger rushing, and situational football.

Quarterback Comparison
Carolina Panthers vs San Francisco 49ers Match Player Stats make the quarterback battle interesting because neither starter played a flawless game. Brock Purdy completed 23 of 32 passes for 193 yards, one touchdown, and three interceptions, a line that normally creates serious danger. Bryce Young completed 18 of 29 passes for 169 yards, one touchdown, and two interceptions, but Carolina’s offense failed to punish San Francisco’s mistakes. Purdy had more support from the run game and defense, while Young needed more explosive help.
Christian McCaffrey’s Complete Impact
Carolina Panthers vs San Francisco 49ers Match Player Stats naturally begin with Christian McCaffrey because he was the most important offensive player on the field. Against the franchise that drafted him, McCaffrey carried 24 times for 89 yards and a touchdown, then added seven receptions for 53 yards. His 142 total yards from scrimmage gave San Francisco reliability in a game where quarterback rhythm was uneven. He did not need one huge highlight run to control the night; his repeated useful touches kept Carolina’s defense under pressure.
San Francisco Receiving Breakdown
San Francisco’s passing game was efficient enough because its targets played clear roles. George Kittle led the team with six catches for 78 yards, giving Purdy a dependable option over the middle. Jauan Jennings caught five passes for 41 yards and scored the 49ers’ receiving touchdown, while McCaffrey’s seven catches gave the offense a safe outlet whenever Carolina tightened coverage downfield. Ricky Pearsall, Demarcus Robinson, Brian Robinson Jr., and Luke Farrell had smaller contributions, but the 49ers simply needed enough balance to extend drives.
Carolina Offensive Review
Carolina Panthers vs San Francisco 49ers Match Player Stats show that the Panthers had useful individual moments, but not enough sustained rhythm. Rico Dowdle was one of Carolina’s better performers, rushing six times for 38 yards and catching four passes for 36 yards. Chuba Hubbard added 16 rushing yards and 27 receiving yards, while Young contributed 15 rushing yards himself. The Panthers moved the ball in flashes, yet the offense struggled to stack first downs, protect momentum, and finish the opportunities its defense created.
Panthers Passing Targets
Carolina Panthers vs San Francisco 49ers Match Player Stats also explain why Carolina’s passing game felt limited even with a touchdown on the board. Tetairoa McMillan caught only two passes, but his 35 yards and touchdown made him the team’s most important scoring target. Jalen Coker added three catches for 32 yards, Xavier Legette had three catches for 22 yards, and Jimmy Horn Jr. made one 11-yard reception. Dowdle and Hubbard helped underneath, but Carolina lacked the consistent chunk plays needed to change the tone.
Defensive Difference-Makers
Carolina Panthers vs San Francisco 49ers Match Player Stats become especially valuable on defense because both teams created major plays. Ji’Ayir Brown stood out for San Francisco with two interceptions and five tackles, turning Bryce Young’s mistakes into defining moments. Malik Mustapha led the 49ers with seven tackles, while Clelin Ferrell added a sack, a tackle for loss, and a quarterback hit. Carolina’s defense also fought hard, with Jaycee Horn intercepting Purdy twice and Krys Barnes finishing with 10 tackles.
Team Stats and Control
Carolina Panthers vs San Francisco 49ers Match Player Stats tell the deeper story through team numbers. San Francisco finished with 340 total yards compared with Carolina’s 230, ran 70 plays compared with Carolina’s 43, and controlled possession for 37:42 while the Panthers held it for 22:18. The 49ers also produced 147 rushing yards, more than double Carolina’s 69. Turnovers kept the score from stretching further, but San Francisco’s play volume created pressure Carolina could not escape.
What the Stats Say About Carolina
For Carolina, the numbers show a defense that competed and an offense that could not fully reward it. Horn’s two interceptions gave the Panthers the type of road opportunities they needed, and the tackling numbers showed real physical effort. Still, nine total points were not enough against a team that controlled the clock so heavily. The numbers suggest effort was present, but early-down success, protection, and finishing quality were missing.
What the Stats Say About San Francisco
For San Francisco, the performance was not elegant, but it was mature. Purdy’s three interceptions created danger, yet the 49ers did not panic or abandon their identity. McCaffrey handled the workload, Kittle stabilized the passing game, Jennings finished a touchdown chance, and the defense answered when momentum could have turned. Carolina Panthers vs San Francisco 49ers Match Player Stats show a team capable of winning through structure even when its quarterback is not at his sharpest.
Final Takeaway
The final lesson is simple: San Francisco controlled the structure of the game, while Carolina only controlled scattered moments. McCaffrey was the best offensive player, Brown was the best defensive playmaker, and the 49ers’ rushing attack helped cover up an unusually turnover-heavy night from Purdy. Carolina’s defense deserves credit for creating takeaways, but the offense did not provide enough answers. Carolina Panthers vs San Francisco 49ers Match Player Stats ultimately point to a 20-9 result built on patience, possession, and defensive timing.
FAQs
Who was the best player in the game?
Christian McCaffrey was the best player because he produced 142 total yards and scored a rushing touchdown while giving San Francisco control.
How did Brock Purdy perform?
Brock Purdy had a mixed night, completing 23 of 32 passes for 193 yards and one touchdown, but his three interceptions made the game uncomfortable.
How did Bryce Young perform for Carolina?
Bryce Young completed 18 of 29 passes for 169 yards, one touchdown, and two interceptions, showing promise but struggling to turn possessions into points.
What was the biggest statistical difference?
The biggest difference was possession and play volume, as San Francisco ran 70 plays and held the ball for 37:42, while Carolina ran 43 plays.
Why did the 49ers win despite turnovers?
The 49ers won because their defense limited Carolina’s response, their rushing attack stayed productive, and McCaffrey helped the offense maintain rhythm.


