carolina panthers vs 49ers match player stats

Carolina Panthers vs 49ers Match Player Stats

The carolina panthers vs 49ers match player stats from the November 24, 2025 Week 12 meeting show how San Francisco turned a relatively uneven offensive performance into a controlled 20-9 victory. The 49ers finished with 147 rushing yards, while Christian McCaffrey produced 142 scrimmage yards and a rushing touchdown. Carolina’s defense also created three interceptions, but the Panthers could not turn those takeaways into enough points.

The game was played at Levi’s Stadium, with San Francisco entering at 8-4 and Carolina at 6-6. The final scoring sequence was straightforward: San Francisco led 7-0 after the first quarter, held a 10-3 advantage at halftime, extended the margin to 17-9 in the third quarter, and added a fourth-quarter field goal to close out the 20-9 win.

For anyone searching for detailed player numbers rather than just the final score, this game provides several useful points of analysis. Brock Purdy threw for 193 yards and one touchdown but also had three interceptions. Bryce Young completed 18 of 29 passes for 169 yards, one touchdown, and two interceptions. Meanwhile, George Kittle led San Francisco’s receiving group with 78 yards, while rookie Tetairoa McMillan scored Carolina’s only touchdown.

Table of Contents

Carolina Panthers vs 49ers Match Player Stats

The most important numbers from the game are summarized below.

Category Carolina Panthers San Francisco 49ers
Final Score 9 20
Record After Game 6-6 8-4
Passing Bryce Young: 18/29, 169 yards, 1 TD, 2 INT Brock Purdy: 23/32, 193 yards, 1 TD, 3 INT
Team Rushing 13 carries, 69 yards, 5.3 AVG 38 carries, 147 yards, 3.9 AVG
Leading Rusher Rico Dowdle: 38 yards Christian McCaffrey: 89 yards
Rushing TDs 0 1
Team Receiving 18 receptions, 169 yards 23 receptions, 193 yards
Leading Receiver Rico Dowdle: 36 yards George Kittle: 78 yards
Receiving TDs 1 1
Interceptions 3 2
Sacks 1 for 8 yards 0
Field Goals 1/2 2/2

The overall statistical picture is interesting because Carolina actually won the interception battle 3-2. Yet San Francisco still won by 11 points. That tells us that turnovers alone did not determine the result.

The 49ers were much more productive on the ground, running 38 times for 147 yards. Carolina managed only 13 rushing attempts for 69 yards. That difference helped San Francisco control the offensive rhythm despite Purdy’s three interceptions.

Final Score and Scoring Breakdown

The 49ers won 20-9, but the score developed gradually rather than through a high-scoring offensive explosion.

First Quarter

San Francisco opened the scoring with a 12-yard touchdown pass from Brock Purdy to Jauan Jennings.

The touchdown finished a 15-play, 72-yard drive that consumed 8:43. That possession immediately showed one of San Francisco’s biggest strengths in this game: patience.

Rather than relying on one huge play, the 49ers consistently moved the chains and kept the Panthers defense on the field.

Second Quarter

Carolina responded with a 25-yard field goal from Ryan Fitzgerald.

That made the score 7-3.

San Francisco answered with Matt Gay’s 47-yard field goal shortly before halftime. The 49ers therefore entered the break with a 10-3 lead.

Third Quarter

The third quarter produced the game’s biggest exchange.

Christian McCaffrey scored on a 12-yard rushing touchdown after a 13-play, 80-yard drive. San Francisco’s possession lasted 7:43.

Carolina then answered with its only touchdown.

Bryce Young connected with Tetairoa McMillan on a 29-yard touchdown pass. The Panthers attempted a two-point conversion but failed, leaving the score at 17-9.

Fourth Quarter

San Francisco prevented Carolina from completing the comeback.

Matt Gay added a 29-yard field goal after a 10-play, 59-yard drive that consumed 6:28.

That made the final score 20-9.

Bryce Young’s Passing Performance

Bryce Young finished with 18 completions on 29 attempts for 169 passing yards.

He threw one touchdown and two interceptions.

His listed passer rating was 60.8, while his QBR was 14.2. The box score also lists one sack for eight yards.

The numbers show a mixed performance.

Young was not completely ineffective. He completed more than 60 percent of his attempts and produced Carolina’s only touchdown pass. His connection with McMillan in the third quarter was particularly important because it temporarily reduced San Francisco’s advantage.

However, the two interceptions hurt Carolina’s ability to sustain offensive momentum.

More importantly, the Panthers defense created three interceptions against Brock Purdy. Carolina therefore had multiple opportunities to change the game’s direction.

The offense did not take full advantage of them.

Bryce Young’s Main Receiving Connections

Carolina’s receiving distribution was fairly spread out.

Player Receptions Yards Average TD Long Targets
Rico Dowdle 4 36 9.0 0 12 4
Tetairoa McMillan 2 35 17.5 1 29 7
Jalen Coker 3 32 10.7 0 18 4
Chuba Hubbard 4 27 6.8 0 14 4
Xavier Legette 3 22 7.3 0 14 5
Jimmy Horn Jr. 1 11 11.0 0 11 1
Ja’Tavion Sanders 1 6 6.0 0 6 1

McMillan stands out because his two receptions produced 35 yards and a touchdown.

His 29-yard touchdown represented Carolina’s longest reception of the night. His 17.5 yards per reception also made him the Panthers’ most explosive receiver by average among players with multiple catches.

However, he received seven targets and caught only two.

That suggests there were opportunities for the rookie that did not become completed passes.

Tetairoa McMillan’s Touchdown Was Carolina’s Biggest Offensive Play

McMillan’s third-quarter touchdown deserves special attention.

Carolina was trailing 17-3 when Young found McMillan for 29 yards. The score gave the Panthers a chance to make the game competitive.

The touchdown also showed why explosive passing plays can change the statistical shape of an NFL game.

Before that possession, Carolina had struggled to consistently generate points. One successful deep completion immediately produced seven potential points, although the two-point attempt failed.

The Panthers therefore entered the fourth quarter within one score plus a field goal.

But they could not generate another scoring drive.

This is important when studying carolina panthers vs 49ers match player stats because McMillan’s numbers look modest at first glance. Two receptions and 35 yards do not tell the entire story.

His 29-yard touchdown was Carolina’s most valuable passing play of the game from a scoring perspective.

Christian McCaffrey’s Complete Performance

Christian McCaffrey was the most productive individual offensive player in the game.

He rushed 24 times for 89 yards and one touchdown.

He also caught seven passes for 53 yards.

That gave him 142 total yards from scrimmage on 31 touches.

His rushing average was 3.7 yards per carry, which is not an exceptional figure by itself.

The bigger story is volume.

McCaffrey received 24 carries and seven targets. San Francisco consistently placed the ball in the hands of its most experienced offensive weapon.

His 12-yard rushing touchdown came during a long third-quarter drive. That score gave the 49ers a 17-3 advantage and helped them regain control after Carolina had created several defensive turnovers.

McCaffrey’s Receiving Contribution

His receiving statistics were also important.

McCaffrey caught seven passes for 53 yards, averaging 7.6 yards per reception.

He also received seven targets.

His receiving production meant Carolina could not focus exclusively on stopping his rushing attempts. San Francisco could use him as both a runner and a short-area receiving option.

That versatility helped the 49ers maintain possession and keep their offense functional even when the passing game was not at its cleanest.

George Kittle Led San Francisco’s Receiving Group

George Kittle was San Francisco’s leading receiver.

He finished with:

  • 6 receptions
  • 78 yards
  • 13.0 yards per reception
  • 10 targets
  • 25-yard long
  • 0 touchdowns

His 10 targets were the most on the 49ers.

Kittle’s 78 receiving yards represented more than 40 percent of San Francisco’s 193 passing yards.

That is a significant share.

He was therefore central to San Francisco’s passing production even though Jauan Jennings scored the team’s passing touchdown.

Kittle’s 25-yard reception was also San Francisco’s longest catch of the game.

Jauan Jennings Produced a Touchdown

Jauan Jennings caught five passes for 41 yards.

He averaged 8.2 yards per reception and received seven targets.

Most importantly, he caught the 12-yard touchdown pass that opened the scoring.

That touchdown came during San Francisco’s long first-quarter drive.

Jennings’ overall yardage was lower than Kittle’s, but his touchdown had a direct impact on the scoreboard. This is another example of why receiving yards should always be considered alongside scoring production.

Brock Purdy’s Statistical Line

Brock Purdy completed 23 of 32 passes for 193 yards.

He threw one touchdown and three interceptions.

His listed QBR was 49.5 and his passer rating was 58.5 in the supplied box-score data.

At first glance, the three interceptions appear concerning.

They were particularly significant because Carolina’s defense managed to take the ball away repeatedly.

However, San Francisco’s running game provided an important counterbalance.

The 49ers did not need Purdy to throw for 300 yards. They were able to run the ball 38 times and use McCaffrey heavily.

That approach reduced the need for a high-volume passing performance.

Purdy’s Turnovers Did Not Decide the Game

Purdy threw three interceptions, while Young threw two.

Therefore, the 49ers actually committed more interceptions.

Yet San Francisco won 20-9.

This is one of the clearest statistical lessons from this matchup.

A turnover margin is important, but it is not automatically decisive.

Field position, rushing efficiency, red-zone execution, defensive stops, and scoring after turnovers all matter.

Carolina’s defense created three interceptions but the offense did not turn those opportunities into enough points. That allowed San Francisco to survive a turnover-heavy passing performance.

San Francisco’s Rushing Advantage

The rushing numbers show a major difference between the teams.

Carolina

Carolina recorded 13 team rushing attempts for 69 yards.

That produced a 5.3-yard average.

Rico Dowdle led the Panthers with 38 yards on six carries. He averaged 6.3 yards per attempt and had a 17-yard long.

Chuba Hubbard added 16 yards on three attempts.

Bryce Young contributed 15 rushing yards on four attempts.

San Francisco

San Francisco recorded 38 rushing attempts for 147 yards.

The team averaged 3.9 yards per attempt.

McCaffrey led the way with 89 yards on 24 carries.

Brian Robinson Jr. added 40 yards on seven carries, averaging 5.7 yards per attempt.

Purdy added 16 yards on six carries, while Ricky Pearsall had two yards on one attempt.

The most important difference is volume.

San Francisco ran the ball nearly three times as often as Carolina.

That allowed the 49ers to build a more consistent offensive structure despite Purdy’s interceptions.

Brian Robinson Jr. Added Valuable Rushing Production

Brian Robinson Jr. was another important part of San Francisco’s ground attack.

He carried the ball seven times for 40 yards.

His 5.7-yard average was better than McCaffrey’s 3.7-yard average.

Robinson did not score, but his contribution helped San Francisco maintain a two-back rushing workload.

This matters because McCaffrey carried the ball 24 times.

Giving Robinson seven additional rushing attempts allowed the 49ers to keep their ground game active without relying entirely on one player.

Carolina’s Rushing Game Had Limited Volume

Carolina’s rushing statistics are unusual because the team averaged 5.3 yards per carry but attempted only 13 rushes.

That means the problem was not simply inefficient running.

The Panthers actually gained a respectable 69 yards from those attempts.

Dowdle’s 6.3-yard average was particularly strong.

The bigger issue was volume.

San Francisco had 38 rushing attempts compared with Carolina’s 13.

That created a significant difference in how each team could control possession and manage game tempo.

When a team is trailing, it can become increasingly difficult to maintain a balanced rushing attack.

Carolina ultimately had to rely more heavily on Young’s passing.

Defensive Statistics Tell Another Part of the Story

Carolina’s defense recorded 90 tackles, including 32 solo tackles.

The Panthers also recorded:

  • 3 tackles for loss
  • 4 passes defended
  • 1 quarterback hit
  • 0 sacks
  • 3 interceptions

San Francisco recorded:

  • 44 tackles
  • 29 solo tackles
  • 2 tackles for loss
  • 4 passes defended
  • 3 quarterback hits
  • 1 sack
  • 2 interceptions

These numbers provide an interesting contrast.

Carolina’s defense generated more interceptions.

San Francisco’s defense generated more quarterback pressure based on the listed sack and quarterback-hit totals.

The Panthers did not record a sack, while San Francisco recorded one sack for eight yards.

Jaycee Horn Had a Two-Interception Game

Jaycee Horn intercepted Brock Purdy twice.

He returned those interceptions for a combined 36 yards.

Mike Jackson added another interception, giving Carolina three interceptions as a team.

That was one of the strongest individual defensive performances in the game from a turnover perspective.

However, Carolina’s offense did not fully capitalize.

This is a useful distinction when interpreting defensive statistics.

A turnover is valuable because it gives the offense another possession.

But its actual scoreboard value depends on what happens next.

Ji’Ayir Brown Created Two Turnovers

San Francisco’s two interceptions both came from Ji’Ayir Brown.

He recorded two interceptions for four return yards.

Brown therefore directly answered some of Carolina’s defensive success.

His second interception was especially important in preventing the Panthers from gaining additional momentum.

While the 49ers did not dominate the turnover battle, Brown’s two interceptions helped compensate for Purdy’s three mistakes.

Special Teams Statistics

Special teams also contributed to the final score.

Ryan Fitzgerald went 1-for-2 on field-goal attempts for Carolina.

His successful kick came from 25 yards and accounted for three points.

Matt Gay was perfect for San Francisco.

He made both of his field-goal attempts, including a 47-yard kick, and converted both extra-point attempts.

Gay finished with eight points.

That is significant because the 49ers won by 11 points.

His eight points therefore represented a substantial part of San Francisco’s final scoring total.

Kick Returns and Field Position

Trevor Etienne handled Carolina’s kick returns.

He returned three kicks for 74 yards, averaging 24.7 yards per return.

His longest return went 26 yards.

He also returned one punt for six yards.

San Francisco’s Skyy Moore returned three kicks for 80 yards.

He averaged 26.7 yards per return, with a longest return of 43 yards.

The 49ers had no recorded punt returns.

Although these plays did not directly produce touchdowns, they affected starting field position and the structure of possessions.

Punting Comparison

Sam Martin punted four times for Carolina.

He accumulated 201 yards, averaging 50.3 yards per punt.

His longest punt was 55 yards.

Two punts landed inside the 20-yard line, and one resulted in a touchback.

San Francisco used Thomas Morstead once.

His punt traveled 40 yards, with no touchback and no recorded punt inside the 20.

The low number of San Francisco punts reflects the team’s ability to sustain drives throughout the game.

The Most Important Statistical Difference

If one statistic best explains the 20-9 result, it is the rushing workload.

San Francisco ran 38 times for 147 yards.

Carolina ran 13 times for 69 yards.

The 49ers therefore had 25 more rushing attempts and 78 more rushing yards.

That gave San Francisco a reliable offensive foundation.

The passing numbers were not dramatically different in yardage.

Purdy threw for 193 yards.

Young threw for 169 yards.

That is only a 24-yard difference.

The much larger difference came on the ground.

San Francisco’s ability to run the football allowed the team to survive three interceptions from Purdy and still score 20 points.

Why Carolina’s Three Interceptions Were Not Enough

A casual look at the box score might suggest Carolina should have been in a better position.

The Panthers intercepted Purdy three times.

Purdy threw one touchdown and three interceptions.

Young threw two interceptions.

Carolina also averaged 5.3 yards per rushing attempt.

Yet the Panthers scored only nine points.

The problem was conversion.

Turnovers gave Carolina additional possessions, but the offense did not consistently convert those possessions into touchdowns or sustained scoring drives.

That is perhaps the clearest statistic for understanding the loss.

A Closer Look at the Team Receiving Numbers

Carolina completed 18 passes for 169 yards.

San Francisco completed 23 passes for 193 yards.

The 49ers therefore produced:

  • 5 more receptions
  • 24 more passing yards
  • 1 additional receiving touchdown

The difference was not enormous in raw passing volume.

San Francisco’s receiving production was spread primarily among Kittle, McCaffrey, and Jennings.

Kittle led with 78 yards.

McCaffrey added 53.

Jennings contributed 41.

Together, those three accounted for 172 receiving yards in the supplied individual statistics, although the individual and team presentation can differ depending on the statistical treatment of plays.

For direct box-score work, the team totals should remain the reference point.

The Importance of Kittle’s 10 Targets

Kittle received 10 targets.

That was the highest target total for either San Francisco receiver.

He converted those opportunities into six receptions for 78 yards.

His 13.0 yards per reception made him an efficient option whenever San Francisco moved the ball through the air.

His 25-yard reception was also the team’s longest catch.

Kittle’s performance illustrates how a tight end can influence a game without scoring a touchdown.

His role was primarily about moving the offense and extending possessions.

Carolina’s Passing Distribution

Carolina’s 27 team targets were distributed across eight listed players.

McMillan received seven targets.

Legette received five.

Dowdle, Coker, and Hubbard each received four.

This spread suggests Young had multiple available targets rather than relying exclusively on one receiver.

However, the completion totals were modest.

McMillan caught two of seven targets.

Legette caught three of five.

Dowdle and Hubbard each caught four.

The Panthers therefore moved the ball through several players but lacked enough consistent explosive production to sustain scoring drives.

What the Box Score Says About Offensive Efficiency

The game provides a useful reminder that raw passing yards do not tell the entire story.

Purdy had 193 passing yards.

Young had 169.

That 24-yard difference was relatively small.

But San Francisco had 147 rushing yards compared with Carolina’s 69.

That 78-yard difference was more substantial.

The 49ers also scored twice on touchdowns, while Carolina scored once.

San Francisco made both field-goal attempts.

Carolina made only one of two.

When these factors are combined, the final score becomes much easier to understand.

Key Player Stats at a Glance

Carolina Panthers

Bryce Young

  • 18 completions
  • 29 attempts
  • 169 passing yards
  • 1 touchdown
  • 2 interceptions
  • 60.8 passer rating
  • 14.2 QBR

Rico Dowdle

  • 6 rushing attempts
  • 38 rushing yards
  • 6.3 yards per carry
  • 4 receptions
  • 36 receiving yards

Tetairoa McMillan

  • 2 receptions
  • 35 yards
  • 17.5 yards per reception
  • 1 touchdown
  • 29-yard long

Jaycee Horn

  • 2 interceptions
  • 36 interception return yards

San Francisco 49ers

Brock Purdy

  • 23 completions
  • 32 attempts
  • 193 passing yards
  • 1 touchdown
  • 3 interceptions
  • 49.5 QBR
  • 58.5 listed passer rating

Christian McCaffrey

  • 24 rushing attempts
  • 89 rushing yards
  • 1 rushing touchdown
  • 7 receptions
  • 53 receiving yards
  • 142 total scrimmage yards

George Kittle

  • 6 receptions
  • 78 receiving yards
  • 13.0 yards per reception
  • 10 targets
  • 25-yard long

Jauan Jennings

  • 5 receptions
  • 41 receiving yards
  • 1 touchdown

Ji’Ayir Brown

  • 2 interceptions
  • 4 interception return yards

What This Game Reveals About Each Offense

The 49ers demonstrated that they could win without a clean passing performance.

Purdy threw three interceptions.

That would normally put significant pressure on an offense.

San Francisco responded by leaning into its rushing attack.

McCaffrey received 24 carries and added seven receptions. Robinson contributed 40 rushing yards. The team finished with 147 rushing yards.

That balance helped San Francisco avoid becoming dependent on Purdy’s passing.

Carolina had a different problem.

The Panthers did create turnovers, and their rushing efficiency was respectable. But they did not run the ball enough to establish the same type of offensive balance.

The result was a greater dependence on Young’s passing.

What This Game Reveals About Each Defense

Carolina’s defense deserves credit for creating three interceptions.

That was the biggest defensive statistic on the Panthers’ side.

However, the defense did not record a sack and produced only one quarterback hit.

San Francisco recorded one sack and three quarterback hits.

The 49ers also held Carolina to nine points.

Therefore, San Francisco’s defense did not need to generate a huge turnover total. It simply needed to prevent Carolina from converting its opportunities into touchdowns.

That happened successfully.

Common Questions About the Game

Who won the Panthers vs 49ers game?

The San Francisco 49ers defeated the Carolina Panthers 20-9. San Francisco led 10-3 at halftime and maintained control through the second half.

Who was the leading rusher?

Christian McCaffrey led all rushers with 89 yards on 24 carries. He also scored San Francisco’s rushing touchdown.

How many yards did Bryce Young throw for?

Bryce Young completed 18 of 29 passes for 169 yards, with one touchdown and two interceptions in the supplied box-score statistics.

How many interceptions did Brock Purdy throw?

Brock Purdy threw three interceptions. Carolina’s Jaycee Horn recorded two of them, while Mike Jackson recorded the other.

Who led the 49ers in receiving?

George Kittle led San Francisco with six receptions for 78 yards on 10 targets. His longest reception went for 25 yards.

Who scored Carolina’s only touchdown?

Tetairoa McMillan caught a 29-yard touchdown pass from Bryce Young in the third quarter. It was Carolina’s only touchdown of the game.

Conclusion

The carolina panthers vs 49ers match player stats show a game in which San Francisco overcame an imperfect passing performance through rushing volume, controlled possessions, and timely scoring.

Brock Purdy threw three interceptions, but the 49ers did not allow those mistakes to dictate the entire game. Their 38 rushing attempts and 147 rushing yards gave the offense another way to move the football.

Christian McCaffrey was the central figure. His 89 rushing yards, 53 receiving yards, and rushing touchdown gave him 142 scrimmage yards. George Kittle also played a major role with 78 receiving yards and 10 targets.

Carolina’s defense produced three interceptions, including two from Jaycee Horn. However, the Panthers converted those takeaways into only limited scoring. That became one of the defining statistical differences in the matchup.

Bryce Young finished with 169 passing yards, one touchdown, and two interceptions. Tetairoa McMillan provided the Panthers’ biggest offensive highlight with his 29-yard touchdown reception.

Ultimately, San Francisco’s 20-9 victory was built less on spectacular passing numbers and more on balance, rushing volume, defensive resistance, and reliable kicking.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *