CLEVELAND, November 30, 2025 โ Cleveland nearly matched San Francisco in total yards. The Browns outrushed the 49ers 138 to 91. They controlled the ball for nearly as long. And they still lost by 18 points, with Brock Purdy doing the Dougie in the end zone at Huntington Bank Field in front of the Dawg Pound.
The Cleveland Browns vs San Francisco 49ers final score obscures how close the underlying numbers were, and how badly the Browns’ miscues defined the afternoon. Every San Francisco touchdown came off a turnover or a 66-yard punt return. The Niners never had to earn a single score from their own side of the field.
Shedeur Sanders made his first home start. He was sharp early, led Cleveland to its only lead late in the second quarter, and ran out of ammunition in the second half as the Browns managed just 76 offensive yards after halftime. San Francisco improved to 9-4 with its third consecutive win. Cleveland fell to 3-9.
Table of Contents
| Date | November 30, 2025 |
| Venue | Huntington Bank Field, Cleveland, OH |
| Attendance | 64,042 |
| Weather | 35ยฐF, 73% humidity, 20 mph wind |
| Vegas Line | 49ers -5.0 |
| Over/Under | 35.5 (Under) |
Scoring Summary
| Qtr | Time | Team | Play | SF | CLE |
|---|---|---|---|---|---|
| Q1 | 8:12 | 49ers | McCaffrey 1-yd rush (Gay kick) | 7 | 0 |
| Q2 | 0:39 | Browns | Fannin 34-yd pass from Sanders (Judkins 2-pt rush) | 7 | 8 |
| Q2 | 0:00 | 49ers | Gay 25-yd field goal | 10 | 8 |
| Q3 | 1:29 | 49ers | Purdy 2-yd rush (Gay kick) | 17 | 8 |
| Q4 | 11:05 | 49ers | Jennings 7-yd pass from Purdy (2-pt pass failed) | 23 | 8 |
| Q4 | 4:09 | 49ers | Gay 31-yd field goal | 26 | 8 |
How San Francisco Scored Without a Sustained Drive
Every 49ers score traced back to Cleveland’s own mistakes or a special teams play. Kyle Shanahan did not have to out-scheme anyone.
First touchdown (Q1, 7-0): Skyy Moore returned a Corey Bojorquez punt 66 yards to set San Francisco up at the Cleveland 16. Christian McCaffrey scored from a yard out on third-and-goal six plays later.
Second touchdown (Q3, 17-8): Harold Fannin lined up under center on fourth-and-one, botched the direct snap, and Luke Gifford recovered the fumble at the Cleveland 32. Nine plays later, Purdy kept it left on a bootleg from the two-yard line and scored his first rushing touchdown of the 2025 season โ career number nine.
Then he did the Dougie.
“Once I got to the end zone I was there by myself for a little bit and I was like ‘alright, Dougie,'” Purdy said afterward. Kittle had commentary: “He was really good at it, and I was surprised. A white guy has a little motion.”
Third touchdown (Q4, 23-8): Gage Larvadain muffed a punt at the Cleveland 18. Darrell Luter recovered. Purdy hit Jauan Jennings on a seven-yard pass on third-and-seven four plays later.
Shanahan said: “We were hoping we could get some turnovers and some big plays from special teams, which we got a huge one with Skyy on the return. When you play that way, just eventually you’re going to get the points.”
The field goal that put San Francisco ahead for good came off another short-field opportunity โ a 58-yard drive in 39 seconds at the end of the first half, capped by a 33-yard Purdy-to-Kittle connection that left Gay with a 25-yarder as time expired.
Team Stats
| Category | San Francisco | Cleveland |
|---|---|---|
| Total Yards | 252 | 253 |
| Net Passing Yards | 161 | 115 |
| Rushing Yards | 91 | 138 |
| Total Plays | 64 | 60 |
| Yards Per Play | 3.9 | 4.2 |
| First Downs | 19 | 15 |
| Passing First Downs | 11 | 7 |
| Rushing First Downs | 7 | 8 |
| 3rd Down Conv. | 11/17 (65%) | 3/11 (27%) |
| 4th Down Conv. | 0/0 | 0/4 |
| Turnovers | 0 | 2 |
| Fumbles Lost | 0 | 2 |
| Penalties | 3-11 | 4-25 |
| Sacks Allowed | 1 (-7 yds) | 3 (-34 yds) |
| Time of Possession | 30:10 | 29:50 |
| Red Zone (Scored-Att) | 3/5 | 0/0 |
| Avg Yards Per Drive | 21.0 | 25.2 |
The third-down conversion gap โ 65 percent for San Francisco against 27 percent for Cleveland โ is the one number that does the most to explain 18 points of separation on a day when the yardage totals were nearly identical.
Quarterback Stats
| Player | Team | Comp/Att | Yards | TD | INT | Sacks | Rating | Rush Att | Rush Yds | Rush TD |
|---|---|---|---|---|---|---|---|---|---|---|
| Brock Purdy | SF | 16/29 | 168 | 1 | 0 | 1 (-7) | 83.7 | 2 | 4 | 1 |
| Shedeur Sanders | CLE | 16/25 | 149 | 1 | 0 | 3 (-34) | 93.6 | 1 | 6 | 0 |
Sanders completed eight of his first 11 passes and looked composed in the first half. The second half was a different afternoon entirely. Cleveland generated just 76 yards after the break. Three sacks cost the offense 34 yards. On two separate fourth-down attempts in the final quarter, the Browns came up empty.
“We ran the ball very well. And when we got in certain passing situations and field position, everything like that, it wasn’t the best,” Sanders said.
Purdy’s passer rating was lower than Sanders’, but he produced the score that mattered โ the two-minute drill that ended with Gay’s field goal as the first half expired at 10-8, recovering a lead Cleveland had briefly taken.
Rushing Stats
| Player | Team | Carries | Yards | YPC | TD | Long |
|---|---|---|---|---|---|---|
| Christian McCaffrey | SF | 20 | 53 | 2.7 | 1 | 7 |
| Brian Robinson Jr. | SF | 8 | 26 | 3.3 | 0 | 9 |
| Demarcus Robinson | SF | 1 | 6 | 6.0 | 0 | 6 |
| Brock Purdy | SF | 2 | 4 | 2.0 | 1 | 2 |
| Mac Jones | SF | 2 | 2 | 1.0 | 0 | 3 |
| SF Total | 33 | 91 | 2.8 | 2 | 9 | |
| Quinshon Judkins | CLE | 23 | 91 | 4.0 | 0 | 17 |
| Dylan Sampson | CLE | 4 | 23 | 5.8 | 0 | 9 |
| Isaiah Bond | CLE | 1 | 9 | 9.0 | 0 | 9 |
| Malachi Corley | CLE | 1 | 9 | 9.0 | 0 | 9 |
| Shedeur Sanders | CLE | 1 | 6 | 6.0 | 0 | 6 |
| Harold Fannin Jr. | CLE | 1 | 0 | 0.0 | 0 | 0 |
| CLE Total | 31 | 138 | 4.5 | 0 | 17 |
McCaffrey entered the week leading the NFL in scrimmage yards. He left with 74 total โ 53 rushing, 21 receiving โ his second-lowest scrimmage output of the season. Judkins ran for 91 yards on 23 carries and was the most reliable piece of Cleveland’s offense all afternoon, but the Browns went 0-for-4 on fourth downs, turning a competitive rushing performance into four wasted possessions.
Receiving Stats
| Player | Team | Targets | Rec | Yards | YPR | TD | Long |
|---|---|---|---|---|---|---|---|
| George Kittle | SF | 5 | 4 | 67 | 16.8 | 0 | 33 |
| Jauan Jennings | SF | 6 | 4 | 39 | 9.8 | 1 | 13 |
| Kyle Juszczyk | SF | 2 | 2 | 27 | 13.5 | 0 | 23 |
| Christian McCaffrey | SF | 4 | 4 | 21 | 5.3 | 0 | 12 |
| Ricky Pearsall | SF | 3 | 2 | 14 | 7.0 | 0 | 13 |
| Kendrick Bourne | SF | 1 | 0 | 0 | — | 0 | — |
| Luke Farrell | SF | 1 | 0 | 0 | — | 0 | — |
| Demarcus Robinson | SF | 1 | 0 | 0 | — | 0 | — |
| SF Total | 23 | 16 | 168 | 10.5 | 1 | 33 | |
| Harold Fannin Jr. | CLE | 5 | 3 | 43 | 14.3 | 1 | 34 |
| Jerry Jeudy | CLE | 4 | 3 | 26 | 8.7 | 0 | 11 |
| Gage Larvadain | CLE | 3 | 2 | 23 | 11.5 | 0 | 13 |
| Quinshon Judkins | CLE | 3 | 3 | 18 | 6.0 | 0 | 13 |
| Jerome Ford | CLE | 3 | 3 | 17 | 5.7 | 0 | 9 |
| Isaiah Bond | CLE | 2 | 1 | 18 | 18.0 | 0 | 18 |
| David Njoku | CLE | 2 | 2 | 4 | 2.0 | 0 | 4 |
| Cedric Tillman | CLE | 1 | 0 | 0 | — | 0 | — |
| CLE Total | 23 | 17 | 149 | 8.8 | 1 | 34 |
Kittle’s 33-yard catch with four seconds remaining in the first half put Gay in position for the go-ahead field goal. Fannin was Cleveland’s most productive receiver with 43 yards and a touchdown, but his fumbled fourth-down snap in the third quarter immediately handed San Francisco a scoring drive at the Cleveland 32.
Defense Stats
| Player | Team | Tackles | Solo | Sacks | TFL | PD | QB Hits |
|---|---|---|---|---|---|---|---|
| Clelin Ferrell | SF | 9 | 6 | 2.0 | 2 | 0 | 2 |
| Upton Stout | SF | 7 | 5 | 0 | 1 | 0 | 0 |
| Malik Mustapha | SF | 7 | 5 | 0 | 1 | 1 | 0 |
| Curtis Robinson | SF | 6 | 3 | 0 | 0 | 0 | 0 |
| Dee Winters | SF | 6 | 3 | 0 | 0 | 0 | 0 |
| Ji’Ayir Brown | SF | 5 | 4 | 0 | 0 | 0 | 0 |
| Jordan Elliott | SF | 4 | 0 | 0 | 0 | 0 | 1 |
| Deommodore Lenoir | SF | 4 | 1 | 0 | 0 | 0 | 0 |
| Renardo Green | SF | 3 | 3 | 0 | 0 | 0 | 0 |
| Keion White | SF | 3 | 3 | 1.0 | 1 | 0 | 2 |
| Bryce Huff | SF | 2 | 1 | 0 | 0 | 0 | 1 |
| Jason Pinnock | SF | 2 | 2 | 0 | 0 | 0 | 0 |
| CJ West | SF | 2 | 1 | 0 | 0 | 0 | 0 |
| Carson Schwesinger | CLE | 10 | 5 | 0 | 1 | 0 | 1 |
| Ronnie Hickman | CLE | 8 | 4 | 0 | 0 | 1 | 0 |
| Devin Bush Jr. | CLE | 7 | 1 | 0 | 0 | 0 | 0 |
| Tyson Campbell | CLE | 6 | 3 | 0 | 0 | 2 | 0 |
| Myles Garrett | CLE | 5 | 2 | 1.0 | 2 | 0 | 3 |
| Grant Delpit | CLE | 5 | 2 | 0 | 0 | 0 | 0 |
| Shelby Harris | CLE | 4 | 3 | 0 | 1 | 0 | 0 |
| Mason Graham | CLE | 4 | 3 | 0 | 0 | 0 | 1 |
| Mohamoud Diabate | CLE | 4 | 1 | 0 | 0 | 0 | 0 |
| Rayshawn Jenkins | CLE | 4 | 0 | 0 | 0 | 0 | 0 |
| Jerome Baker | CLE | 2 | 1 | 0 | 0 | 0 | 0 |
| Blake Whiteheart | CLE | 2 | 1 | 0 | 0 | 0 | 0 |
| Myles Harden | CLE | 2 | 1 | 0 | 0 | 0 | 0 |
| Cameron Thomas | CLE | 2 | 0 | 0 | 0 | 0 | 1 |
Ferrell was the most active pass rusher on either side, finishing with two sacks, two tackles for loss, and two QB hits. On the Cleveland side, Garrett got to Purdy once in the fourth quarter for his NFL-leading 19th sack of the season. It was his sixth consecutive game with at least one, and it left him four short of the single-season record of 22.5 shared by Michael Strahan (2001 New York Giants) and T.J. Watt (2021 Pittsburgh Steelers).
Rookie linebacker Carson Schwesinger led Cleveland’s defense with 10 combined tackles and a PFF grade of 81.1 โ one of the cleaner individual performances in a losing effort.
Special Teams and Kicking
| Player | Team | Category | Stats |
|---|---|---|---|
| Skyy Moore | SF | Punt Returns | 3 ret, 69 yds, 23.0 avg, long 66 |
| Skyy Moore | SF | Kick Returns | 1 ret, 24 yds |
| Matt Gay | SF | Field Goals | 2/2 (25 yd, 31 yd) โ 100% |
| Matt Gay | SF | Extra Points | 2/2 |
| Thomas Morstead | SF | Punting | 5 punts, 178 yds, 35.6 avg, long 42 |
| Malachi Corley | CLE | Kick Returns | 4 ret, 73 yds, 18.3 avg, long 26 |
| Gage Larvadain | CLE | Punt Returns | 3 ret, 3 yds, 1.0 avg, 1 muffed |
| Corey Bojorquez | CLE | Punting | 4 punts, 178 yds, 44.5 avg, long 49 |
Moore’s 66-yard return was the single play that set the game’s tone before either quarterback had found any rhythm. Larvadain’s muffed punt in the fourth quarter handed San Francisco the ball at the Cleveland 18 and led directly to the Jennings touchdown that made it 23-8.
PFF Initial Grades โ Top Performers
| Player | Team | Position | Grade | Snaps |
|---|---|---|---|---|
| Wyatt Teller | CLE | Guard | 90.3 | 31 |
| Myles Garrett | CLE | Edge | 83.9 | 61 |
| Carson Schwesinger | CLE | LB | 81.1 | 63 |
| Curtis Robinson | SF | LB | 80.7 | 61 |
| Brock Purdy | SF | QB | 79.5 | 63 |
| Dee Winters | SF | LB | 78.9 | 63 |
| Grant Delpit | CLE | Safety | 78.6 | 63 |
| George Kittle | SF | TE | 78.3 | 58 |
| Ethan Pocic | CLE | Center | 77.9 | 56 |
| Jauan Jennings | SF | WR | 73.2 | 54 |
Initial grades, subject to review.
Injuries
San Francisco 49ers
- LB Nick Martin โ concussion (Q1)
- OL Ben Bartch โ foot (left in second half)
- FB Kyle Juszczyk โ ribs (left in second half)
Cleveland Browns
- OT Jack Conklin โ concussion (Q2)
- DT Maliek Collins โ knee (Q3)
- RB Dylan Sampson โ calf (Q3)
What the Box Score Doesn’t Say
Cleveland played a competitive football game. The Browns held McCaffrey to 74 scrimmage yards on 24 touches. They outgained San Francisco by 47 yards on the ground. Their defense was on the field for 64 plays and gave up only seven points from scrimmage situations โ both field goals came off turnovers and a punt return, not off drives the 49ers earned.
None of that changed the score because the Browns handed their opponent the ball three times inside the 35-yard line and failed to convert on any of their four fourth-down attempts. The self-inflicted damage was the game.
Kevin Stefanski said it without qualification: “There’s going to be things that we can clean up, but you can’t play that way. Putting a good team on a short field that many times.”
After the loss, Garrett addressed the younger players in the locker room. “This is our team just as much as it is yours; take ownership of it.” Sanders absorbed the afternoon with similar directness. “I just gotta be better overall. I gotta be able to rally everybody together when adversity is hitting.”
His stat line โ 16 of 25, 149 yards, one touchdown, no interceptions โ was cleaner than it felt. The problem was never just the quarterback. At 3-9 with a roster that was still being rebuilt, the Week 13 San Francisco 49ers-Browns box score said less about Sanders’ ceiling and more about how much work remained around him.
November 30, 2025 | Huntington Bank Field, Cleveland, Ohio | Attendance: 64,042 | Officials: Referee Brad Allen

