49ers 2025 Season in Review
2025 NFL Season · Saturday, May 16
12-5 regular season
The full episode, in writing
50.7 percent on third down — best in the NFL across all 17 games. Here's how San Francisco built the league's most reliable money-down offense, why a quarterback room of Brock Purdy and Mac Jones somehow stayed afloat, and the one defensive stat that turned a 12-win team into a Divisional Round blowout. 12 five. Wild card berth as the six seed. And then a 35-point loss in Seattle that turned a really fun regular season into a really empty January.
Start with the team-level picture. The offense finished at +93.7 total expected points added — how much every snap added to their scoring chances — sixth in the league, 80-fourth percentile. The defense gave up +71.8, and on defense you want that number negative, so positive 71.8 means 20-fourth, 20-eighth percentile. That gap is the whole story. The Niners outscored people because the offense was elite on early downs and lethal on third down — not because they were stopping anybody. And this was a steady-trend team, not boom-or-bust: 20-plus points in 14 of 17 games, with only the Week 4 home loss to Jacksonville and the Week 18 finale against Seattle as real offensive no-shows. Even the 42 to 26 beating from the Rams in Week 10 came with 26 on the board.
Now let's talk about the passing offense, because this is where the season was won. +95.4 total passing expected points added on 606 attempts — +0.16 per dropback, sixth in the league. 254 yards a game, 33 passing touchdowns, and they did it splitting the year — Purdy for nine games, Jones for 11. Purdy's completion percentage over expected was +5.1, second among qualified starters. Jones posted +3.0 himself. Two different quarterbacks, both completing the ball well above what the average passer would on those throws. That's a Kyle Shanahan offense doing Kyle Shanahan things. The downside: 27 sacks allowed, a 4.3 percent sack rate, 20-ninth in the league — protection got muffed up front. But the bigger story is how third down powered everything, and one play tells it. Week 16 in Indianapolis, fourth quarter, third and nine from the Colts' nine, Niners up seven. Purdy hits Christian McCaffrey on a short left checkdown, McCaffrey walks it in — +3.21 expected points on a single snap. Third down, money down, ball in the back's hands, drive ends in seven.
Now let's dig into the rushing offense, which is the inverse story. −18.5 total rushing expected points added on 481 carries — −0.04 per attempt, 20-first. 3.8 yards a carry, 20-fourth, 20-eighth percentile. 106.9 yards a game, but it was volume, not efficiency — steady floor, low ceiling. McCaffrey carried 311 times for 1202 yards at 3.9 a clip with 10 rushing touchdowns. But his rushing yards over expected — how many yards he gained above what an average back would on those same carries — came in at −166 total, −0.5 per attempt. 40-sixth among qualified runners. The volume was there. The touchdowns were there. The per-carry juice wasn't. His real value came as a receiver — 102 catches, 924 yards, seven more scores. The rushing attack was a closer, not a driver.
Next up, the pass defense, and this is where the season cracked. +67.6 expected points added allowed through the air, +0.11 per dropback — and on defense, positive is bad. 20-fifth percentile. 241 yards a game, 29 passing touchdowns. But the pass rush is the headline: 20 sacks all season. 20. Dead last in the NFL, 30-second of 32, third percentile. 57 quarterback hits — sixth percentile. They simply could not get to the passer, and in the modern NFL every other defensive number suffers when you can't. 15 total takeaways, 20-second percentile. Deommodore Lenoir delivered the signature moment — Week 11 in Arizona, third quarter, he jumped a Jacoby Brissett throw and took it 64 yards the other way, a −9.2 expected points swing on one snap. Plays like that papered over the structural problem during the regular season. They didn't paper over it in January.
And the run defense was the more stable side of the ball — but stable doesn't mean good. +4.2 total rushing expected points added allowed, league average at +0.01 per carry. 108.6 rushing yards a game, 13 rushing touchdowns on 416 attempts. 30-fourth percentile. A unit that held the line without ever winning the line — and paired with a pass rush that couldn't get home, you get a defense that hung around all year and then got walked through the building in the Divisional Round. 12 wins is a great regular season. The defensive numbers are why it wasn't more.
The Bottom Line
Season MVP is Christian McCaffrey, and it's not particularly close — 311 carries for 1202 yards and 10 rushing touchdowns, +102 catches for 924 yards and seven more scores. The engine on the ground and the security blanket through the air, all 17 games. The thing that has to get fixed is the pass rush — 20 sacks all season, dead last in the NFL, third percentile. You can't win a Divisional Round game when you can't touch the quarterback, and the Niners found that out the hard way in Seattle.
Every 49ers episode
Season reviews, draft recaps and every game recap, in one place.