
San Francisco 49ers
12-5 regular season
Show notes
The 49ers went 12-5 in 2025, upset defending champion Philadelphia on the road in the Wild Card round, then saw their season end in a 41-6 blowout at Seattle in the Divisional Round. This team had no business winning twelve games — which made the ride so compelling. After a 6-11 disaster in 2024, Kyle Shanahan's crew lost Nick Bosa to a torn ACL in Week 3 and Fred Warner to a broken ankle in Week 6, yet kept stacking wins behind a healthy Christian McCaffrey and a passing attack that carried the offense all year. The 49ers went 3-0 on the road inside the NFC West during the regular season, including a gritty Week 1 win at Seattle, but a flat Week 18 loss to those same Seahawks at home cost them the division title, the number-one seed, and potentially a path to a home Super Bowl. Resilience defined this season — until it ran out in the Pacific Northwest.
The numbers tell a boom-or-bust story. San Francisco averaged 25 points per game, but that average masked wild swings — the 49ers hung 48 on Indianapolis in Week 16 and 42 on Chicago in Week 17, then managed just 3 points in the Week 18 Seattle loss and 6 in their playoff exit. On offense, total passing expected points added was plus 95.7 on the season — the engine that drove everything. Rushing expected points added was zero, meaning the run game neither helped nor hurt on a per-snap basis. The defense allowed plus 67.6 in passing expected points added — and remember, on defense you want that number negative, so plus 67.6 means opposing quarterbacks consistently moved the ball through the air. Turnover differential was ugly at negative-eight: the 49ers committed 22 turnovers against just 14 takeaways, fewer than one per game. The offense converted 51 percent of its third downs, but the defense allowed opponents to convert 41 percent, leaving little margin for error week to week.
Now let's talk about the passing offense. This unit generated plus 95.7 in total passing expected points added across 17 games — by far the most productive phase of the team. San Francisco threw for 254 yards per game, tossed 33 touchdowns through the air, and posted a per-play passing expected points added of plus 0.16, meaning the average dropback moved the chains more than a typical snap. The line held up with 27 sacks allowed, and the offense produced 55 explosive plays of 20-plus yards, better than three per game. What made this unit fascinating was the two-quarterback reality: Brock Purdy started nine games and posted plus 63.1 in passing expected points added with a completion percentage over expected of plus 7.7, while Mac Jones filled in for eleven games and posted plus 44.7 — both quarterbacks pushed the ball downfield and trusted their weapons. The consistency wobbled depending on who was under center and which playmakers were available — games with Kittle and a full complement of receivers looked like a top-five attack, while short-handed weeks produced clunkers. George Kittle was the passing game's most efficient weapon, catching 57 balls for 628 yards and 7 touchdowns in just 11 games with plus 46.3 in receiving expected points added — the kind of number that screams he changed the math every time he lined up.
Now let's dig into the rushing offense. San Francisco averaged 108 yards per game on 462 carries, and total rushing expected points added was minus 2.03 — break-even, meaning the run game was a complementary piece rather than a weapon. Per-carry expected points added was exactly zero, which tells you this ground attack moved the sticks at a league-average clip but rarely created explosive chunk plays or flipped field position. Christian McCaffrey's workload kept a steady floor most weeks, but the unit never took over a game the way San Francisco's rushing attack has in past seasons. McCaffrey carried 311 times for 1,202 yards and 10 rushing touchdowns, the kind of workhorse volume that earned him Comeback Player of the Year — but his rushing expected points added was minus 21, meaning his value showed up far more as a receiver out of the backfield than between the tackles.
Next up, the pass defense. This was the unit that got muffed the hardest. San Francisco's pass defense allowed plus 67.6 in total passing expected points added on the season — again, on defense you want that number deep in the negatives, so plus 67.6 means opposing passers consistently generated scoring value against this secondary. The 49ers gave up 241.8 passing yards per game, 29 passing touchdowns, and managed only 20 sacks as a team — barely more than one per game. Losing Bosa's pass rush in Week 3 and Warner's coverage ability in Week 6 gutted the back end of this defense, and the 14 total takeaways on the season meant the defense almost never flipped the field for the offense. The unit was wildly inconsistent week to week: they held Carolina to 9 points in Week 12 and Cleveland to 8 in Week 13, but surrendered 42 to the Rams in Week 10 and 41 to Seattle in the Divisional Round.
And the run defense. San Francisco allowed 108.6 rushing yards per game on 416 opponent carries, with plus 4.15 in total rushing expected points added allowed — a slight negative mark, meaning ball carriers gained a touch more than expected on an average snap. Per-carry expected points added allowed was plus 0.01, dead neutral, which put this run defense in the middle of the pack. The unit held steady for most of the year — rarely the reason the 49ers lost — but it also never dominated, rarely stuffing opponents behind the line consistently enough to create negative game scripts. With the pass defense leaking yards at the rate it did, a merely average run defense couldn't bail the team out in high-leverage moments, particularly in the postseason when Seattle ran the ball effectively and built a lead that was never in jeopardy.
Subscribe
Every 49ers episode in your podcast app
2025 season review today. Weekly recaps every Tuesday once the 2026 season kicks off. All free.
Or paste this RSS URL into any podcast app
https://muffed.ai/podcasts/team/SF/feed.xml