49ers vs Cleveland Browns Match Player Stats
The 49ers vs Cleveland Browns match player stats from November 30, 2025, tell the story of a game that was decided less by explosive passing numbers and more by San Francisco’s ability to control key situations. The San Francisco 49ers defeated the Cleveland Browns 26-8 at Huntington Bank Field, improving to 9-4 while Cleveland fell to 3-9. The 49ers scored in three of the four quarters, while Cleveland’s only points came in the second quarter.
For anyone studying this matchup beyond the final score, the individual statistics reveal several important details. Brock Purdy completed 16 of 29 passes for 168 yards and a touchdown without throwing an interception. Christian McCaffrey added 53 rushing yards and a touchdown on 20 carries, while George Kittle led San Francisco’s receiving group with 67 yards on four catches. On Cleveland’s side, Shedeur Sanders completed 16 of 25 passes for 149 yards and one touchdown, while rookie running back Quinshon Judkins produced 91 rushing yards on 23 attempts.
The final score makes San Francisco’s victory look comfortable, but the individual numbers provide a more useful explanation of how the game developed.
49ers vs Cleveland Browns Match Player Stats at a Glance
Here is the core statistical snapshot from the November 30, 2025 matchup.
| Category | San Francisco 49ers | Cleveland Browns |
| Final Score | 26 | 8 |
| Passing Leader | Brock Purdy | Shedeur Sanders |
| Passing | 16/29, 168 yards, 1 TD, 0 INT | 16/25, 149 yards, 1 TD, 0 INT |
| Leading Rusher | Christian McCaffrey | Quinshon Judkins |
| Rushing | 33 carries, 91 yards, 2 TD | 31 carries, 138 yards, 0 TD |
| Leading Receiver | George Kittle | Harold Fannin Jr. |
| Receiving Leader | 4 receptions, 67 yards | 3 receptions, 43 yards |
| Team Fumbles Lost | 0 | 2 |
| Sacks | 3 | 1 |
| Quarterback Hits | 6 | 7 |
| Interceptions | 0 | 0 |
One important statistical detail is worth explaining. Passing totals can appear different depending on whether a source is showing gross passing yards or net passing yards after sacks. San Francisco had 161 team passing yards because of the seven yards lost on one sack, while Purdy’s individual passing total remains 168 yards. Cleveland’s 149 gross passing yards became 115 net passing yards after 34 sack yards.
Game Summary and Scoring Breakdown
San Francisco established control early.
The 49ers scored seven points in the first quarter after McCaffrey reached the end zone on a one-yard rushing touchdown. Cleveland did not score during the opening period, giving San Francisco an early 7-0 advantage.
The second quarter was the most competitive stretch of the game. Cleveland finally found the end zone when Sanders connected with Harold Fannin Jr. for a 34-yard touchdown. Cleveland then converted a two-point attempt through a Quinshon Judkins run, briefly taking an 8-7 lead. San Francisco responded before halftime with a Matt Gay field goal, entering the break ahead 10-8.
San Francisco then separated itself in the second half.
Purdy scored on a two-yard quarterback keeper in the third quarter, extending the lead to 17-8. The 49ers added another touchdown in the fourth quarter when Purdy found Jauan Jennings for a seven-yard score. A late field goal from Gay completed the scoring at 26-8.
That scoring pattern is important because Cleveland was not completely ineffective during the first half. The Browns were within two points at halftime. The decisive change came after the break, when San Francisco prevented Cleveland from scoring in either the third or fourth quarter.
Brock Purdy’s Passing Performance
Brock Purdy finished with:
- 16 completions
- 29 attempts
- 168 passing yards
- 1 passing touchdown
- 0 interceptions
- 1 sack for 7 yards
- 83.7 passer rating
- 78.1 QBR
His completion rate was approximately 55.2 percent, while his average passing gain was 5.8 yards per attempt.
Purdy’s raw yardage total was not enormous, but the most important feature of his performance was ball security. He avoided an interception and contributed a rushing touchdown as well.
Purdy’s Impact Beyond Passing
Purdy’s contribution cannot be understood through passing statistics alone.
He carried the ball twice for four yards and scored the 49ers’ third-quarter touchdown on a two-yard keeper. That touchdown mattered because it came after Cleveland had already shown an ability to move the ball and had kept the game within reach during the first half.
The quarterback’s rushing touchdown also illustrates how San Francisco’s offense used multiple ways to finish drives.
Purdy did not need to throw for 300 yards because San Francisco received meaningful production from its rushing attack, tight end position, and defense.
Shedeur Sanders’ Cleveland Performance
Shedeur Sanders completed 16 of 25 passes for 149 yards, one touchdown and no interceptions. His passer rating was 93.6, and his QBR was 16.3.
His completion rate was 64 percent, which was actually higher than Purdy’s 55.2 percent.
That comparison is useful because the final score might suggest that Sanders was completely overwhelmed as a passer. The raw passing efficiency tells a more nuanced story. Cleveland’s quarterback completed a larger percentage of his attempts and avoided turnovers, but the Browns struggled to turn their offensive possessions into sustained scoring production.
The Effect of Sacks
The three sacks were particularly important.
Sanders produced 149 gross passing yards, but Cleveland finished with only 115 net passing yards after losing 34 yards on sacks. San Francisco’s defense therefore had a meaningful impact on the overall efficiency of Cleveland’s passing game.
The 49ers registered three sacks and six quarterback hits. Cleveland managed one sack and seven quarterback hits against San Francisco.
This is one reason box-score analysis should distinguish between quarterback completion statistics and the overall passing efficiency of the offense.
Christian McCaffrey’s Rushing Numbers
Christian McCaffrey carried the ball 20 times for 53 yards and one touchdown.
His average was 2.7 yards per carry, with a long run of seven yards. Those numbers are not spectacular in isolation, but his role was still important because San Francisco consistently gave him opportunities to establish its rushing identity.
McCaffrey also caught four passes for 21 yards, giving him 74 total yards from scrimmage.
His first-quarter touchdown was especially significant because it gave San Francisco an early advantage.
Why McCaffrey’s Numbers Need Context
A 2.7-yard rushing average might immediately attract attention, but football statistics need to be connected to game circumstances.
San Francisco finished with 91 rushing yards on 33 attempts, which works out to 2.8 yards per carry. The 49ers were not winning this game simply by producing huge rushing plays.
Instead, their offense combined moderate rushing production with efficient scoring opportunities, controlled possessions and defensive stops.
That distinction matters when analyzing the 49ers vs Cleveland Browns match player stats.
Quinshon Judkins Leads Cleveland’s Rushing Attack
Quinshon Judkins was Cleveland’s leading rusher.
He finished with:
- 23 carries
- 91 rushing yards
- 4.0 yards per carry
- 0 rushing touchdowns
Judkins was one of the clearest examples of a player whose individual production did not translate directly into the team’s final result.
His 91 yards were the highest rushing total by either team, yet Cleveland scored only eight points.
The Browns also received 23 yards from Dylan Sampson on four carries. Cleveland finished with 31 rushing attempts for 138 yards, an average of 4.5 yards per carry.
Cleveland’s Rushing Success vs. Scoring Problems
This is one of the most interesting statistical contrasts from the game.
Cleveland ran for 47 more yards than San Francisco, yet lost by 18 points.
That tells us that rushing yardage alone did not determine the outcome.
The Browns were unable to turn their ground production into touchdowns. San Francisco, meanwhile, scored two rushing touchdowns despite producing fewer rushing yards.
Judkins’ performance therefore deserves to be separated from the broader offensive result. His individual workload and efficiency were solid, but Cleveland’s offense did not consistently convert its opportunities.
George Kittle Leads the 49ers Receivers
George Kittle was San Francisco’s leading receiver with four catches for 67 yards.
He averaged 16.8 yards per reception and recorded a long reception of 33 yards. His four receptions represented a substantial part of the 49ers’ 168 receiving yards.
Kittle’s production was especially useful because San Francisco did not have a single wide receiver dominating the game statistically.
Jauan Jennings caught four passes for 39 yards and scored a fourth-quarter touchdown. Kyle Juszczyk added two receptions for 27 yards, while Christian McCaffrey contributed four receptions for 21 yards.
This distribution made San Francisco’s passing attack difficult to summarize through one player.
Jauan Jennings’ Touchdown
Jennings finished with four receptions for 39 yards and the 49ers’ fourth-quarter touchdown.
His seven-yard touchdown catch pushed San Francisco’s lead from 17-8 to 23-8 before the failed two-point attempt. Matt Gay later added another field goal.
The touchdown was more important than the raw receiving total suggests because it arrived when Cleveland needed to prevent San Francisco from creating separation.
Harold Fannin Jr. Provides Cleveland’s Main Receiving Highlight
Harold Fannin Jr. led Cleveland’s receiving production with three receptions for 43 yards and one touchdown.
His most important play was the 34-yard touchdown reception from Sanders in the second quarter.
That play produced Cleveland’s only touchdown of the afternoon and temporarily put the Browns ahead 8-7 after the successful two-point conversion.
Fannin’s performance demonstrates how a receiver can have a relatively modest overall statistical line while still producing one of the game’s most important individual plays.
Passing Comparison
The quarterback comparison is more interesting when the statistics are placed side by side.
| Statistic | Brock Purdy | Shedeur Sanders |
| Completions | 16 | 16 |
| Attempts | 29 | 25 |
| Completion Rate | 55.2% | 64.0% |
| Passing Yards | 168 | 149 |
| Yards per Attempt | 5.8 | 6.0 |
| Passing TDs | 1 | 1 |
| Interceptions | 0 | 0 |
| Sacks | 1 | 3 |
| Sack Yards | 7 | 34 |
| Passer Rating | 83.7 | 93.6 |
At first glance, Sanders actually posted the higher passer rating and completion percentage.
Yet Purdy’s team won comfortably.
This is a useful reminder that quarterback statistics are connected to the rest of the offense. A quarterback’s performance cannot be judged solely by passer rating when the game also involves rushing production, field position, turnovers, defensive pressure and scoring efficiency.
Receiving Comparison
San Francisco finished with 16 receptions for 168 receiving yards and one touchdown.
Cleveland recorded 17 receptions for 149 receiving yards and one touchdown.
| Receiving Category | 49ers | Browns |
| Receptions | 16 | 17 |
| Receiving Yards | 168 | 149 |
| Receiving TDs | 1 | 1 |
| Leading Receiver | George Kittle | Harold Fannin Jr. |
| Leader’s Yards | 67 | 43 |
The difference was not the number of catches. Cleveland actually recorded one more reception.
The difference was more about what happened around those catches.
San Francisco’s receiving group generated more total yardage, while Cleveland’s offense struggled to convert its overall production into points after halftime.
Defensive Player Statistics
Defense was central to the outcome.
San Francisco recorded:
- 69 total tackles
- 38 solo tackles
- 3 sacks
- 5 tackles for loss
- 1 pass defended
- 6 quarterback hits
Cleveland recorded:
- 73 total tackles
- 28 solo tackles
- 1 sack
- 4 tackles for loss
- 3 passes defended
- 7 quarterback hits
Myles Garrett’s Defensive Contribution
Myles Garrett recorded five total tackles, two tackles for loss, one sack and three quarterback hits.
His pressure was one of the most notable individual defensive contributions for Cleveland.
However, the Browns needed more consistent disruption across the game. San Francisco’s offensive line and overall offensive structure allowed the 49ers to maintain enough control to score 26 points.
San Francisco’s Defensive Pressure
The 49ers recorded three sacks compared with Cleveland’s one.
That difference became even more meaningful because Sanders lost 34 yards on those three sacks.
The Browns did generate seven quarterback hits, which shows that San Francisco’s quarterback was not operating without pressure. But the 49ers were more successful at converting defensive pressure into actual sacks and limiting Cleveland’s scoring opportunities.
Turnovers and Ball Security
Turnovers are one of the clearest statistical differences in this matchup.
San Francisco did not lose a fumble and did not throw an interception.
Cleveland recorded four fumbles, losing two of them.
Neither team recorded an interception.
That means Cleveland’s turnover margin was affected by lost fumbles rather than interceptions.
Two lost fumbles are particularly costly in a game where the offense is already struggling to score consistently. Even when a team produces 138 rushing yards and completes 17 passes, turnovers can erase otherwise useful offensive work.
San Francisco’s ability to protect the ball helped preserve its control.
Special Teams Impact
Special teams did not dominate the headline statistics, but there were several useful contributions.
Matt Gay converted both of his field-goal attempts and both extra-point attempts. He finished with eight points.
His field goals included a 25-yard attempt in the second quarter and a 31-yard attempt in the fourth quarter.
Skyy Moore contributed in the return game for San Francisco. He had one kickoff return for 24 yards and three punt returns for 69 yards, including a 66-yard long return.
Cleveland’s Malachi Corley recorded four kickoff returns for 73 yards.
The field-position component of special teams helped San Francisco avoid needing every offensive drive to end in a touchdown.
Quarter-by-Quarter Statistical Story
The scoring distribution provides a simple way to understand the game’s progression.
| Quarter | 49ers | Browns |
| First | 7 | 0 |
| Second | 3 | 8 |
| Third | 7 | 0 |
| Fourth | 9 | 0 |
| Final | 26 | 8 |
San Francisco scored in every quarter.
Cleveland scored only during the second quarter.
That second-half shutout is arguably more revealing than the final margin itself.
The Browns were still within two points at halftime, but San Francisco scored 16 unanswered points after the break.
What the Stats Say About Offensive Efficiency
The game is a useful case study in why total yardage should not be treated as the only measure of offensive success.
Cleveland produced 138 rushing yards compared with San Francisco’s 91.
Cleveland also recorded 17 completions compared with San Francisco’s 16.
Yet San Francisco won 26-8.
The key difference was how the teams converted production into points and protected possessions.
San Francisco scored two rushing touchdowns, one passing touchdown and two field goals.
Cleveland scored one passing touchdown and one successful two-point conversion.
The Browns had enough individual production to move the football, but their offense could not maintain scoring pressure throughout the game.
Why the Turnover Margin Mattered
Cleveland lost two fumbles while San Francisco lost none.
There were no interceptions on either side.
That creates a simple turnover margin advantage for San Francisco.
Turnovers are especially important when the offensive yardage difference is not enormous. A lost possession can remove an opportunity to score while simultaneously giving the opponent another chance.
In this matchup, Cleveland’s four fumbles and two lost fumbles became a major part of the statistical story.
Why the Second Half Changed the Game
The first half was relatively close.
San Francisco led 10-8 at halftime, and Cleveland had already demonstrated that it could move the ball.
The third quarter changed the tone.
Purdy’s rushing touchdown made it 17-8. Cleveland then failed to score again.
San Francisco added Jennings’ touchdown and a late field goal in the fourth quarter, producing a 26-8 final.
The 49ers therefore combined second-half scoring with defensive control. That combination prevented Cleveland from turning its rushing production into a comeback.
49ers vs Cleveland Browns Match Player Stats: Key Takeaways
The most useful conclusions from the numbers are these:
1. Purdy did not need a huge passing game
Purdy’s 168 passing yards were enough because San Francisco complemented his passing with rushing touchdowns, receiving contributions and defensive pressure.
2. Judkins produced the best rushing total
Judkins’ 91 yards were the highest rushing total in the game.
However, Cleveland did not score a rushing touchdown.
3. Kittle was San Francisco’s top receiver
Kittle’s four catches for 67 yards gave him the highest receiving total for either team.
4. Cleveland’s passing efficiency was misleading without sack context
Sanders completed 64 percent of his passes and posted a 93.6 passer rating, but three sacks cost Cleveland 34 yards.
5. San Francisco protected the football
The 49ers lost no fumbles and threw no interceptions.
6. Cleveland could not sustain second-half offense
The Browns scored eight points in the second quarter but were shut out in the first, third and fourth quarters.
7. San Francisco converted opportunities into points
Two rushing touchdowns, one passing touchdown and two field goals produced 26 points from an offense that did not accumulate overwhelming yardage.
A Deeper Look at the Rushing Efficiency
The rushing comparison is one of the most interesting aspects of the game.
Cleveland averaged 4.5 yards per rushing attempt across 31 carries.
San Francisco averaged 2.8 yards per carry across 33 attempts.
That means Cleveland was clearly more efficient on a per-carry basis.
Yet rushing efficiency did not translate into victory.
This is an important lesson for anyone analyzing NFL box scores. A team can have the better yards-per-carry figure and still lose because football is ultimately determined by points, possession quality, turnovers and situational execution.
San Francisco’s rushing attack also produced two touchdowns. Cleveland’s produced none.
A Deeper Look at the Passing Efficiency
The passing comparison is similarly interesting.
Purdy averaged 5.8 yards per attempt, while Sanders averaged 6.0.
Sanders also completed a higher percentage of his throws.
But Cleveland’s three sacks significantly reduced its net passing output.
San Francisco’s one sack cost seven yards.
Therefore, the gross passing numbers were relatively close, but the net passing numbers created a larger difference.
This is why serious analysis of 49ers vs Cleveland Browns match player stats should include sack yardage rather than simply comparing passing yards.
Field Position and Punting
San Francisco’s Thomas Morstead punted five times for 178 yards, averaging 35.6 yards per punt and placing three punts inside the 20-yard line.
Cleveland’s Corey Bojorquez punted four times for 178 yards, averaging 44.5 yards per punt with one touchback.
Bojorquez had the higher gross average, but Morstead’s three punts inside the 20 are an important situational statistic.
Field position is rarely captured fully by the final box score. A punt’s value depends on where it ends, not simply how far it travels.
What the Box Score Does Not Show
Traditional statistics cannot capture every factor behind the result.
They do not fully explain:
- How frequently quarterbacks were pressured before sacks
- How offensive formations influenced defensive assignments
- How early-down success affected later downs
- Whether individual receptions came in high-value situations
- How defensive coverage affected quarterback decisions
- How field position influenced drive difficulty
- How play selection changed after the halftime score
This is why player statistics should be treated as evidence rather than a complete explanation.
The box score gives us the measurable output. Film and play-by-play provide additional context.
How to Read These Player Stats Correctly
If you are comparing this game with other NFL matchups, use a consistent process.
Start With the Quarterbacks
Look at:
- Completion percentage
- Passing yards
- Yards per attempt
- Touchdowns
- Interceptions
- Sacks
- Net passing yards
This prevents a misleading conclusion based on one number.
Then Check Rushing
Compare:
- Carries
- Rushing yards
- Yards per carry
- Rushing touchdowns
- Long runs
- Team rushing totals
The Cleveland-San Francisco matchup shows why touchdowns matter alongside rushing efficiency.
Then Examine Receiving Distribution
Do not only look for the player with the most yards.
Consider:
- Targets
- Receptions
- Receiving yards
- Average per reception
- Longest reception
- Touchdowns
- Distribution among multiple players
San Francisco spread production across Kittle, Jennings, McCaffrey and Juszczyk.
Finally, Check Defense and Turnovers
Defensive statistics become more useful when combined with offensive results.
Look at:
- Sacks
- Quarterback hits
- Tackles for loss
- Passes defended
- Interceptions
- Forced fumbles
- Fumbles lost
In this matchup, the three-to-one sack advantage and Cleveland’s two lost fumbles provide important context.
Frequently Asked Questions
Who won the 49ers vs Browns game on November 30, 2025?
The San Francisco 49ers defeated the Cleveland Browns 26-8 at Huntington Bank Field.
How did Brock Purdy perform against the Browns?
Purdy completed 16 of 29 passes for 168 yards, one touchdown and no interceptions. He also rushed twice for four yards and scored a rushing touchdown.
How many yards did Quinshon Judkins rush for?
Quinshon Judkins rushed 23 times for 91 yards, averaging 4.0 yards per carry. He did not score a rushing touchdown.
Who was the 49ers’ leading receiver?
George Kittle led San Francisco with four receptions for 67 yards.
Who scored the Browns’ only touchdown?
Harold Fannin Jr. caught a 34-yard touchdown pass from Shedeur Sanders in the second quarter. Cleveland then converted a two-point attempt on a Quinshon Judkins run.
Did either team throw an interception?
No. Neither Brock Purdy nor Shedeur Sanders threw an interception in the game.
Conclusion
The 49ers vs Cleveland Browns match player stats show a game that was closer at halftime than the final score suggests.
Cleveland had some encouraging individual numbers. Quinshon Judkins rushed for 91 yards, Shedeur Sanders completed 64 percent of his passes and the Browns averaged 4.5 yards per rushing attempt. Harold Fannin Jr. also produced Cleveland’s only touchdown.
San Francisco, however, controlled the most important areas of the game. Brock Purdy protected the football, Christian McCaffrey scored on the ground, George Kittle provided the biggest receiving total, and the defense recorded three sacks while Cleveland managed only one.
The biggest statistical contrast came in the second half. Cleveland scored eight points in the second quarter but was held scoreless in the other three quarters. San Francisco scored in all four quarters and finished with 26 points.
The matchup also demonstrates why individual statistics should never be read in isolation. Cleveland gained more rushing yards and averaged more yards per carry, while Sanders posted a higher completion percentage and passer rating. San Francisco still won comfortably because it combined ball security, scoring efficiency, defensive pressure and timely plays more effectively.
For readers studying NFL player statistics, this game is a useful example of why a complete analysis should go beyond passing yards or rushing totals. The relationship between production, turnovers, sacks, touchdowns, field position and scoring opportunities provides a much clearer picture of what happened on the field.