SANTA CLARA — The first half gave no hint of how this one would end. The 49ers and Broncos traded field goals into a 3-3 halftime tie Sunday at Levi's Stadium, and the offenses looked like they'd left their timing in the locker room. Then Marvin Mims Jr. touched a punt early in the third quarter, the ball hit the turf, Siran Neal pounced on it — and San Francisco's afternoon flipped. The 49ers scored touchdowns on their next two possessions and held off a late Broncos rally for a 24-14 win, moving to 4-0 for the second time in four years.
Brock Purdy finished 19-of-30 for 218 yards and two touchdowns without an interception, and the 49ers needed every one of them. The go-ahead score came off Mims' muffed punt return — the game's only turnover — when Purdy flipped a 1-yard touchdown pass to Deebo Samuel to cap a 9-play, 28-yard drive with 4:15 left in the third quarter. Christian McCaffrey's 1-yard plunge with 8:52 remaining made it 17-6, and Levi's Stadium finally had the sound of a team taking control.

Denver refused to go quietly. Bo Nix, sharp in defeat, drove the Broncos 75 yards and hit Jaylen Waddle for a 13-yard touchdown — Waddle's first with the team — then watched Tyler Badie run in the 2-point conversion to cut the lead to 17-14 with 4:05 to play. Nix finished 25-of-42 for 214 yards, one touchdown and no interceptions, and his favorite target on the afternoon was rookie running back RJ Harvey, who caught 10 passes for 68 yards out of the backfield.
That's when San Francisco's stars did what stars do in October. Facing the pressure of a three-point game, Purdy took a simple screen call to George Kittle — and Kittle did the rest, rumbling 56 yards for the clinching touchdown with roughly 2:15 left. The 49ers' tight end turned a safe call into the play of the game, and the sideline erupted. Wil Lutz pushed a 58-yard field goal attempt wide with 1:18 remaining, and the Broncos' last gasp never materialized.
The stat sheet tells the story of a game that was won on patience rather than fireworks. McCaffrey ground out 15 carries for 52 yards and the touchdown against a Denver front that spent the first half stuffing everything. Mike Evans led all receivers with five catches for 76 yards — and did it while playing through a ribs injury, gutting out the afternoon as Purdy's most trusted target. Neither quarterback threw an interception. The only giveaway of the entire afternoon was Mims' fumbled punt, and it decided the game.

For head coach Kyle Shanahan, the win carried history. The victory was his 95th as 49ers head coach, and he passed Bill Walsh for the most games coached in franchise history. Walsh built the modern 49ers; Shanahan has built their present, and Sunday's grind — ugly early, ruthless late — looked exactly like the kind of win this version of the 49ers makes routine. San Francisco has now won its first four games for the second time in four years, and it keeps doing it different ways: last week's shootout, this week's slugfest.
Linebacker Dre Greenlaw, playing against the Broncos team he suited up for last season, led the San Francisco defense with 12 tackles. The win keeps the 49ers perfect and in control of their October — and it sets up a Week 5 trip for Denver to Los Angeles to face the 0-4 Chargers, with the statuses of Surtain, Moss and Bryant worth monitoring all week. For San Francisco, the formula is becoming familiar: survive the slow starts, let Purdy find his stars late, and let the defense close the door.
The injury report, though, will keep the training staff busy this week. Denver lost star cornerback Pat Surtain II to a non-contact ankle injury late in the first half, cornerback Riley Moss to a ribs injury, and wide receiver Pat Bryant to an ankle injury that required a cart. San Francisco lost fullback Kyle Juszczyk to a knee injury that ruled him out for the afternoon. A game with only one turnover still managed to leave both sidelines thinner than they arrived.

At 2-2, the Broncos leave Santa Clara with questions. Nix was efficient, the defense held San Francisco scoreless in the first half, and the comeback from 17-6 showed fight. But a muffed punt in a tie game is the kind of mistake that haunts October tape sessions, and the injury toll on the secondary is real. Denver gets a softer landing in Week 5 with a trip to Los Angeles to face the 0-4 Chargers — a game the Broncos badly need to get right before the middle of the schedule stiffens.
For San Francisco, the message is simpler: four weeks, four wins, and a defense that hasn't blinked in the fourth quarter all season. The NFL slate only gets harder from here, but right now the 49ers look like a team that can win the pretty ones and the ugly ones. At 4-0, with Shanahan writing his name deeper into franchise history every week, that's exactly where the Sports desk expects a contender to be.
Reporting this story is based on
- ESPN NFL scoreboard and box score
ESPN — 2026-10-04 - NFL.com game center: Broncos at 49ers, Week 4
NFL — 2026-10-04 - NFL Week 4 Sunday Takeaways
Previously — 2026-10-04


