Carolina Panthers @ San Francisco 49ers
Final Score: 49ers 20, Panthers 9
Writer: Kyle McCarthy (@KyleStats1738 on X)F
For the first time this season, the Panthers lost a game after winning the coin toss. The 49ers opened the game with a methodical, mistake-free 15-play touchdown drive that ate up eight minutes and 43 seconds of the first quarter before the Panthers touched the ball. After that, however, this game got drunk pretty fast as Brock Purdy threw interceptions on three consecutive drives.
Mixed in there was an inexplicable pick by Bryce Young on the goal line, where he had a walk-in touchdown. Young was unable to build on his career day against the Falcons last week, as he and the Panthers’ offense struggled to move the ball all night.
Purdy is the only QB to throw three picks in the first half of a game so far this season, with the most recent being Jared Goff in Week 10 against the Texans last season. Since 2021, there have been nine quarterbacks to do that, including Purdy again back in Week 16 of the 2023 season against the Ravens on Christmas Day. Monday night’s game is the second game this season with at least five combined interceptions, with the other one being the Jake Browning-led Bengals and the Jaguars.
Three Up
- Christian McCaffrey – CMC is a machine. Another 31 touches for McCaffrey tonight, and he now leads the league in receptions (81).
- George Kittle – Getting further removed from early-season hamstring injury. Moving well and looking healthy, led the 49ers in targets and yards.
- Jauan Jennings – Beast. Fought through multiple injuries this season. He just continues to earn targets and score touchdowns.
Three Down
- Bryce Young – Tough follow-up game after throwing for 448 yards and 3 TDs last week. Young has had too many of these kinds of games where the offense doesn’t look functional.
- Rico Dowdle – Saw more Hubbard than expected in this one. Dowdle only had three more touches. Ran well when the Panthers used him at 6.3 yards per carry. They should have used him more with Young having one of those games.
- Ricky Pearsall – Pearsall now has just three catches for nine yards and one carry for two yards in two games since returning. It’s tough for him to see a lot of usage with the other good players in the offense.
Carolina Panthers
Quarterback
Bryce Young: 18/29, 169 Yards, 1 TD, 2 INT | 4 Carries 15 Yards
It was an ugly game for Young after a really encouraging outing in Atlanta last week, posting a 13.5 QBR, which was the fourth lowest of Week 12 and the 330th-ranked QB performance out of 354 games this season, according to ESPN. There was some questionable play-calling from Dave Canales at times, as they had just a 2.1 average depth of target (aDOT) in the first half, featuring plenty of horizontal throws and screens. He completed just two passes beyond 10 yards and had 11 completions at or behind the line of scrimmage. The offense wasn’t functional for most of the night, and the Panthers ran only 43 plays in the game. Plus, he made the worst play of the game with the goal-line interception after Purdy gifted them outstanding field position. Young will need to find more consistency game to game to be considered viable for fantasy purposes.
Ji'Ayir Brown takes it right back for San Francisco!
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/980nPRdSdm— NFL (@NFL) November 25, 2025
The 49ers blitzed Bryce Young at a 29.4% rate, limiting him to 3/8 for 14 yards and 2 interceptions on blitzes.
The Panthers' -15.1 EPA against the blitz were the 4th-fewest by any team in a game this season.
Powered by @awscloud
— Next Gen Stats (@NextGenStats) November 25, 2025
Running Back
Rico Dowdle: 6 Carries, 38 Yards | 4 Targets, 4 Receptions, 36 Yards
It was Dowdle’s fewest touches in a game since the Panthers’ 40-9 blowout loss to the Bills in Week 8, where he had only eight touches. The lack of usage was confusing, as he was their only real way of moving the ball, averaging 7.4 yards per touch. As mentioned, Hubbard was more involved in this game and looked fine, but Dowdle has clearly moved and run more effectively with his touches this season. They also had a first and goal at the one in the first quarter, and instead of running with Dowdle, Young made a major gaffe that the team couldn’t afford. Dowdle hasn’t been as efficient on the ground lately, but has made up for it with 12 receptions in the past three games, tied for fifth most among RBs in that time. The veteran will see better days.
Chuba Hubbard: 3 Carries, 16 Yards | 4 Targets, 4 Receptions, 27 Yards
Hubbard had his most touches since Carolina’s blowout loss to the Bills, where he had 12 touches for 34 yards. It’s unclear why Hubbard was used more in this game over Dowdle, but I wouldn’t expect that to continue.
Trevor Etienne: 1 FUM (on kickoff return)
Etienne fumbled the opening kickoff of the second half, but the Panthers recovered it.
Wide Receiver/Tight End
Tetairoa McMillan: 7 Targets, 2 Receptions, 35 Yards, 1 TD
It was McMillan’s fewest catches in a game this season. He and Young often weren’t on the same page, and when they were, Young either delivered an uncatchable ball or McMillan dropped it. They did connect for a pretty 29-yard touchdown late in the third quarter to provide an okay fantasy day. But it was a letdown for the Carolina passing attack after last week’s big game and facing a San Francisco defense that allowed the most completions in a game of all time in Week 11 against Jacoby Brissett.
T-Mac attacks the seam with a great route
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/hbTmWGQF4K— NFL (@NFL) November 25, 2025
Jalen Coker: 4 Targets, 3 Receptions, 32 Yards
Coker has essentially operated as the Panthers’ No. 2 wideout. He has three straight games with four targets, totaling 10 catches for 103 yards. It’s tough for multiple Panthers pass catchers to be viable right now, but Coker would be the one to bet on.
Xavier Legette: 5 Targets, 3 Receptions, 22 Yards
Legette had one of the best games of his career last week at Atlanta, but was quiet in this one. He caught a few balls underneath and finished second on the team in targets.
Jimmy Horn Jr.: 1 Target, 1 Reception, 11 Yards
Ja’Tavion Sanders: 1 Target, 1 Reception, 6 Yards
Mitchell Evans: 1 Target
San Francisco 49ers
Quarterback
Brock Purdy: 23/32, 193 Yards, 1 TD, 3 INT | 6 Carries, 16 Yards
Purdy was brutal in the first half, throwing three interceptions and noticeably not getting much drive on his throws more than 10 yards downfield. He was surgical within 10 yards, completing 22 of 25 passes for 168 yards and a touchdown, often finding McCaffrey and Kittle. Beyond 10 yards, he completed just one of seven passes for 25 yards, and all three over 20 yards were picked off. Purdy may not be 100% healthy after his early-season toe injury, but he still managed to move the ball well against a solid Carolina defense.
Jaycee Horn will take that!
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/3Mz7VaPMM3— NFL (@NFL) November 25, 2025
Running Back
Christian McCaffrey: 24 Carries, 89 Yards, 1 TD 1 FUM| 7 Targets, 7 Receptions, 53 Yards
McCaffrey’s volume has been otherworldly this season, and he refuses to come off the field. After Monday night’s seven-catch performance, the superstar RB leads the league in touches by a mile with 298 in 12 games. It’s the most touches in a 12-game span to start the season since Dalvin Cook in 2020 (310 touches), and then McCaffrey again one year prior in 2019 (310), according to Stathead. McCaffrey has 796 rushing yards and 785 receiving yards, which only Marshall Faulk has matched in the first 12 games. He forced 11 missed tackles on the night, tied for the fifth most by any player in a game this season, per Next Gen Stats. He did fumble in the first half, but the 49ers were able to get back on it.
CMC with beautiful blocking ahead for a TD against his former team!
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/hKrOeso21z— NFL (@NFL) November 25, 2025
Brian Robinson Jr.: 7 Carries, 40 Yards | 2 Targets, 1 Reception, 4 Yards
Robinson looked spry in relief of McCaffrey at times. The former Washington Commander remains an elite handcuff and would be a must-start if McCaffrey were to miss any time.
Wide Receiver/Tight End
George Kittle: 10 Targets, 6 Receptions, 78 Yards
Kittle is pretty much back to being the version that fantasy managers envisioned when using an early-round selection on him on draft day. He led the 49ers in receiving as Purdy looked for him often over the middle of the field and in the flats. The superstar TE is averaging 16.6 PPR points over the past five games.
Jauan Jennings: 7 Targets, 5 Receptions, 41 Yards, 1 TD
Jennings got the scoring started on the first drive with a resilient catch and run, fighting through two defenders into the end zone. He was targeted on Purdy’s first interception and could have run a cleaner route and fought for the ball harder, but that’s a tough ask. Jennings has now scored in three of the last four games and has been unaffected by Pearsall’s return last week.
Jauan Jennings bounces off defenders to cap a 15-play 49ers opening drive 💪
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/dPHFqb2bfp— NFL (@NFL) November 25, 2025
Ricky Pearsall: 4 Targets, 2 Receptions, 6 Yards | 1 Carry, 2 Yards
Pearsall has been the odd man out among the San Francisco pass-catching group, totaling just three catches for six yards in the past two games. He was targeted on two of Purdy’s interceptions and seems to look healthy when running routes, but has struggled to earn volume since returning.
Demarcus Robinson: 1 Target, 1 Reception, 8 Yards
Luke Farrell: 1 Target, 1 Reception, 3 Yards
Photo by Matthew Huang/Icon Sportswire | Adapted by Justin Paradis (@JustParaDesigns on Twitter/X; @justinparadis.bsky.social on BlueSky