Brock Purdy threw three interceptions before halftime. San Francisco won by eleven anyway.
Christian McCaffrey carried 24 times for 89 yards and caught seven passes for 53 more — 142 scrimmage yards in his first game against Carolina since the Panthers traded him in October 2022. His 12-yard touchdown run in the third quarter pushed the lead to 17-3 and ended any realistic chance of a Panthers comeback. The 49ers held Carolina to three points off Purdy’s three first-half turnovers and improved to 8-4, while the Panthers dropped to 6-6.
Purdy finished 23-of-32 for 193 yards with one touchdown and a 58.5 passer rating. Bryce Young went 18-of-29 for 169 yards and two interceptions — Carolina’s clearest path to a lead wiped out when safety Ji’Ayir Brown intercepted Young in the end zone with the Panthers at the 1-yard line in the second quarter.
Table of Contents
Q1
Q2
Q3
Q4
Final
Carolina Panthers (6-6)
0
3
6
0
9
San Francisco 49ers (8-4)
7
3
7
3
20
Date
Monday, November 24, 2025
Venue
Levi’s Stadium, Santa Clara, California
Attendance
71,337
Broadcast
ESPN — Monday Night Football, Week 12
Duration
2:43
Scoring Summary
Quarter
Time
Play
Score
1st
6:17
Jauan Jennings 12-yd pass from Brock Purdy (Matt Gay kick)
CAR 0 – SF 7
2nd
2:28
Ryan Fitzgerald 25-yd field goal
CAR 3 – SF 7
2nd
1:00
Matt Gay 47-yd field goal
CAR 3 – SF 10
3rd
4:42
Christian McCaffrey 12-yd rush (Matt Gay kick)
CAR 3 – SF 17
3rd
0:49
Tetairoa McMillan 29-yd pass from Bryce Young (2-pt conversion failed)
CAR 9 – SF 17
4th
9:21
Matt Gay 29-yd field goal
CAR 9 – SF 20
San Francisco fed McCaffrey the ball on each of the opening drive’s first five plays, leading to the Purdy-to-Jennings score — the first opening-drive touchdown the Panthers allowed all season. Carolina was handed the ball inside the 49ers’ 30-yard line twice off Purdy’s first-half interceptions and produced three points. McMillan’s third-quarter touchdown came after a penalty on San Francisco pushed the two-point conversion attempt back to the 1-yard line; Young’s pass to Jalen Coker fell incomplete.
Passing Stats
Player
C/ATT
YDS
AVG
TD
INT
SACKS
QBR
RTG
Bryce Young (CAR)
18/29
169
5.8
1
2
1–8
14.2
60.8
Brock Purdy (SF)
23/32
193
6.0
1
3
0–0
49.5
58.5
Purdy was the first quarterback in the 2025 season to throw three interceptions in a single half. Cornerback Jaycee Horn picked him off twice before being ruled out in the third quarter with a concussion. Young entered the game off a 448-yard franchise-record performance at Atlanta the previous week — named NFC Offensive Player of the Week — but was restricted to 169 yards with two turnovers of his own. Entering Week 12, Purdy had thrown seven touchdowns and zero interceptions on all passes under 15 yards downfield, against one touchdown and seven interceptions on deeper throws.
Rushing Stats
San Francisco 49ers
Player
CAR
YDS
AVG
TD
LONG
Christian McCaffrey
24
89
3.7
1
17
Brian Robinson Jr.
7
40
5.7
0
12
Brock Purdy
6
16
2.7
0
9
Ricky Pearsall
1
2
2.0
0
2
Team
38
147
3.9
1
17
Carolina Panthers
Player
CAR
YDS
AVG
TD
LONG
Rico Dowdle
6
38
6.3
0
17
Chuba Hubbard
3
16
5.3
0
10
Bryce Young
4
15
3.8
0
7
Team
13
69
5.3
0
17
McCaffrey’s touchdown came on a toss sweep to the left end. It was his tenth 100-yard scrimmage game of the season, two short of the franchise record he set in 2023. Through 11 games entering Week 12, he had accumulated 707 rushing yards, 74 receptions, and 732 receiving yards.
Receiving Stats
San Francisco 49ers
Player
REC
TGT
YDS
AVG
TD
LONG
George Kittle
6
10
78
13.0
0
25
Christian McCaffrey
7
7
53
7.6
0
19
Jauan Jennings
5
7
41
8.2
1
12
Demarcus Robinson
1
1
8
8.0
0
8
Ricky Pearsall
2
4
6
3.0
0
6
Brian Robinson Jr.
1
2
4
4.0
0
4
Luke Farrell
1
1
3
3.0
0
3
Team
23
32
193
8.4
1
25
Carolina Panthers
Player
REC
TGT
YDS
AVG
TD
LONG
Rico Dowdle
4
4
36
9.0
0
12
Tetairoa McMillan
2
7
35
17.5
1
29
Jalen Coker
3
4
32
10.7
0
18
Chuba Hubbard
4
4
27
6.8
0
14
Xavier Legette
3
5
22
7.3
0
14
Jimmy Horn Jr.
1
1
11
11.0
0
11
Ja’Tavion Sanders
1
1
6
6.0
0
6
Mitchell Evans
0
1
0
—
0
0
Team
18
27
169
9.4
1
29
McMillan’s 29-yard touchdown catch was the longest play of the night for either side. It drew Carolina within eight at 17-9 before the failed two-point attempt left the Panthers needing two scores in the fourth quarter.
Defensive Stats
San Francisco 49ers Defense
Player
TOT
SOLO
SACKS
TFL
PD
QB HTS
Malik Mustapha
7
7
0
1
0
0
Upton Stout
6
2
0
0
1
0
Ji’Ayir Brown
5
4
0
0
2
0
Jordan Elliott
3
2
0
0
0
0
Deommodore Lenoir
3
2
0
0
0
0
Curtis Robinson
3
1
0
0
0
0
Jason Pinnock
2
2
0
0
0
0
Nick Martin
2
2
0
0
0
0
Clelin Ferrell
1
1
1
1
0
1
Kyle Juszczyk
1
1
0
0
0
0
Colton McKivitz
1
1
0
0
0
0
Bryce Huff
1
1
0
0
0
2
Luke Farrell
1
1
0
0
0
0
Dee Winters
1
1
0
0
0
0
Sam Okuayinonu
1
1
0
0
0
0
Siran Neal
1
0
0
0
0
0
Keion White
1
0
0
0
0
0
Kalia Davis
1
0
0
0
0
0
Alfred Collins
1
0
0
0
0
0
C.J. West
1
0
0
0
0
0
Marques Sigle
1
0
0
0
0
0
Renardo Green
0
0
0
0
1
0
Team
44
29
1
2
4
3
Carolina Panthers Defense
Player
TOT
SOLO
SACKS
TFL
PD
QB HTS
Krys Barnes
10
3
0
0
0
0
Tre’Von Moehrig
8
4
0
1
0
0
Nick Scott
8
1
0
0
0
0
A’Shawn Robinson
7
1
0
0
0
1
Tershawn Wharton
6
2
0
0
0
0
Bam Martin-Scott
6
1
0
1
0
0
D.J. Wonnum
5
1
0
0
0
0
Lathan Ransom
5
1
0
0
0
0
Claudin Cherelus
4
3
0
0
0
0
Chau Smith-Wade
4
3
0
1
0
0
Mike Jackson
4
2
0
0
1
0
Trevis Gipson
3
2
0
0
0
0
LaBryan Ray
3
2
0
0
0
0
Princely Umanmielen
3
2
0
0
0
0
Derrick Brown
3
0
0
0
1
0
Corey Thornton
2
1
0
0
0
0
Nic Scourton
2
1
0
0
0
0
Bobby Brown III
2
0
0
0
0
0
Demani Richardson
1
1
0
0
0
0
Tetairoa McMillan
1
1
0
0
0
0
Brycen Tremayne
1
0
0
0
0
0
Jaycee Horn
1
0
0
0
2
0
Thomas Incoom
1
0
0
0
0
0
Team
90
32
0
3
4
1
Interceptions
Player
Team
INT
YDS
TD
Ji’Ayir Brown
SF
2
4
0
Jaycee Horn
CAR
2
36
0
Mike Jackson
CAR
1
0
0
Brown’s first interception came in the end zone after Young drove Carolina to the 1-yard line in the second quarter — a pick that immediately negated what would have been a go-ahead score. His second came at the San Francisco 33-yard line in the fourth quarter, ending the Panthers’ last meaningful drive with just over six minutes remaining. Horn’s two picks of Purdy set Carolina up with short fields — one was returned to the 49ers’ 16-yard line; the Panthers combined for three points off both turnovers.
Special Teams
Kicking
Player
Team
FG
PCT
LONG
XP
PTS
Matt Gay
SF
2/2
100.0%
47
2/2
8
Ryan Fitzgerald
CAR
1/2
50.0%
25
0/0
3
Gay was signed to replace Eddie Pineiro (hamstring), who had converted 22-of-22 field goals on the season entering Week 12.
Punting
Player
Team
NO
YDS
AVG
TB
IN 20
LONG
Sam Martin
CAR
4
201
50.3
1
2
55
Thomas Morstead
SF
1
40
40.0
0
0
40
Kick Returns
Player
Team
NO
YDS
AVG
LONG
TD
Skyy Moore
SF
3
80
26.7
43
0
Trevor Etienne
CAR
3
74
24.7
26
0
Punt Returns
Player
Team
NO
YDS
AVG
LONG
TD
Trevor Etienne
CAR
1
6
6.0
6
0
San Francisco
SF
—
—
—
—
—
Fumbles
Player
Team
FUM
LOST
REC
Christian McCaffrey
SF
1
0
0
Colton McKivitz
SF
0
0
1
Trevor Etienne
CAR
1
0
1
Full Box Score — Team Stats
Stat
CAR
SF
Final Score
9
20
Total Yards
230
340
Passing Yards
161
193
Rushing Yards
69
147
Total Plays
43
70
Yards per Play
5.3
4.9
Completions/Attempts
18/29
23/32
Yards per Pass
5.4
6.0
1st Downs
12
23
— Passing
9
11
— Rushing
3
12
— Penalty
0
0
3rd Down Efficiency
1/7 (14.3%)
7/13 (53.8%)
4th Down Efficiency
0/0
2/2
Red Zone (Att–Scored)
0/2
2/3
Turnovers
2
3
Fumbles Lost
0
0
Interceptions Thrown
2
3
Sacks — Yards Lost
1–8
0–0
Penalties
4 for 30 yds
2 for 6 yds
Time of Possession
22:18
37:42
Injury Report — In-Game
Carolina Panthers: CB Jaycee Horn (concussion — ruled out, third quarter) | LB Claudin Cherelus (concussion — did not return) | G Chandler Zavala (calf — did not return) | CB Corey Thornton (ankle — did not return)
San Francisco 49ers: DE Sam Okuayinonu (ankle — did not return)
Safety Tre’Von Moehrig was subsequently suspended one game by the NFL for striking receiver Jauan Jennings in the groin late in the fourth quarter. The suspension was upheld on appeal.
Game Information
Date
November 24, 2025
Kickoff
8:15 PM ET
Venue
Levi’s Stadium, Santa Clara, California
Panthers Head Coach
Dave Canales
49ers Head Coach
Kyle Shanahan
Officials
Role
Name
Referee
Alex Kemp
Umpire
Brandon Ellison
Down Judge
Mike Carr
Line Judge
Rusty Baynes
Field Judge
Sean Petty
Side Judge
Lo van Pham
Back Judge
Scott Helverson
Carolina held a three-to-two edge in turnovers forced — meaning the Panthers won the turnover battle and still lost by eleven points. That margin comes down to what San Francisco’s defense did with the other side of the ledger: three points allowed off Purdy’s three first-half interceptions, two red zone trips held scoreless, and 230 total yards surrendered to an offense that had put up 448 passing yards seven days earlier. The box score made the 49ers look worse than the final score did; the defense made sure those numbers didn’t matter.
I'm Tony S. Elder, a Washington-based journalist with more than six years of reporting experience across local and digital newsrooms. I hold a BA in Journalism and have covered everything from breaking national news and international affairs to sports, politics, technology, entertainment, celebrity news, automotive, gaming, and culture. In April 2026, I founded The Edge Post to build a publication where every story, regardless of the beat, is reported and verified to the same professional standard. I report, write, and edit every piece published on this site.
Tampa Bay Buccaneers 16, Carolina Panthers 14 | January 3, 2026 | Raymond James Stadium, Tampa, FL
Game at a Glance
DateJanuary 3, 2026VenueRaymond James Stadium,...