Denver
Broncos
2-1
21
FINAL
28
San Francisco
49ers
2-1
AI Recap
AI RECAPIn a thrilling Week 4 matchup, the San Francisco 49ers held off the Denver Broncos with a final score of 28-21. This victory not only boosts the 49ers' momentum but also solidifies their position in the early playoff race of the 2026 season.
Brock Purdy was the star of the show for San Francisco, throwing for four touchdowns and keeping the Broncos' defense on their heels. Meanwhile, Christian McCaffrey showcased his dual-threat ability, racking up 104 receiving yards in addition to his 91 rushing yards, making him a constant weapon throughout the game. Bo Nix led the Broncos' offense with 268 passing yards, but it wasn't enough to overcome the 49ers' offensive firepower.
On the defensive side, the Broncos struggled to contain the 49ers' explosive plays, allowing crucial touchdowns at key moments. The game's turning point came early in the fourth quarter when Purdy connected with McCaffrey for a touchdown that extended the lead to two scores, forcing the Broncos to play catch-up. Brandon Jones was the standout on defense for Denver with four total tackles, but it was the 49ers' ability to make plays when it mattered most that ultimately sealed the victory.
Passing
| Player | Pos | ATT | CMP | CMP% | YDS | TD | INT | QBR |
|---|---|---|---|---|---|---|---|---|
| Bo Nix | QB | 26 | 22 | 85% | 268 | 2 | 0 | 135.2 |
| Brock Purdy | QB | 14 | 13 | 93% | 194 | 4 | 0 | 158.3 |
Rushing
| Player | Pos | ATT | YDS | YPC | YAC | TD | LNG | FUM |
|---|---|---|---|---|---|---|---|---|
| Christian McCaffrey | HB | 15 | 91 | 6.1 | 26 | 0 | 22 | 0 |
| RJ Harvey | HB | 7 | 12 | 1.7 | 6 | 1 | 8 | 0 |
| Bo Nix | QB | 1 | 3 | 3.0 | — | 0 | 3 | 0 |
| Brock Purdy | QB | 2 | 1 | 0.5 | 1 | 0 | 2 | 0 |
| Brandon Aiyuk | WR | 0 | 0 | 0.0 | — | 0 | 0 | 0 |
| Ricky Pearsall | WR | 0 | 0 | 0.0 | — | 0 | 0 | 0 |
Receiving
| Player | Pos | REC | YDS | YPR | YAC | TD | LNG | DROP |
|---|---|---|---|---|---|---|---|---|
| Christian McCaffrey | HB | 5 | 104 | 20.8 | 33 | 2 | 58 | 0 |
| Troy Franklin | WR | 6 | 73 | 12.2 | 39 | 0 | 22 | 0 |
| George Kittle | TE | 5 | 61 | 12.2 | 18 | 1 | 21 | 0 |
| Jaylen Waddle | WR | 6 | 59 | 9.8 | 43 | 1 | 21 | 0 |
| RJ Harvey | HB | 4 | 58 | 14.5 | 29 | 0 | 26 | 0 |
| Courtland Sutton | WR | 4 | 40 | 10.0 | 11 | 1 | 12 | 0 |
| Evan Engram | TE | 2 | 38 | 19.0 | 4 | 0 | 21 | 0 |
| Mike Evans | WR | 1 | 11 | 11.0 | 14 | 0 | 11 | 0 |
| Kyle Juszczyk | FB | 1 | 10 | 10.0 | 8 | 1 | 10 | 0 |
| Ricky Pearsall | WR | 1 | 8 | 8.0 | 9 | 0 | 8 | 0 |
Defense
| Player | Pos | TKL | SACK | INT | FF | PD |
|---|---|---|---|---|---|---|
| Brandon Jones | FS | 4 | 0 | 0 | 0 | 0 |
| Ji'Ayir Brown | FS | 3 | 0 | 0 | 0 | 0 |
| Fred Warner | MIKE | 2 | 0 | 0 | 0 | 0 |
| Deommodore Lenoir | CB | 2 | 0 | 0 | 0 | 0 |
| Tyrice Knight | WILL | 2 | 0 | 0 | 0 | 0 |
| Jonathon Cooper | LEDG | 2 | 0 | 0 | 0 | 0 |
| Brandon Hill | SS | 2 | 0 | 0 | 0 | 0 |
| Upton Stout | CB | 2 | 0 | 0 | 0 | 0 |
| Dre Greenlaw | WILL | 1 | 0 | 0 | 0 | 0 |
| Justin Strnad | WILL | 1 | 0 | 0 | 0 | 0 |
| Jahdae Barron | CB | 1 | 0 | 0 | 0 | 0 |
| Pat Surtain II | CB | 1 | 0 | 0 | 0 | 0 |
| Malik Mustapha | SS | 1 | 0 | 0 | 0 | 0 |
| Osa Odighizuwa | DT | 1 | 0 | 0 | 0 | 0 |
| Talanoa Hufanga | SS | 1 | 0 | 0 | 0 | 0 |
| Ja'Quan McMillian | CB | 1 | 0 | 0 | 0 | 0 |
| Nick Martin | WILL | 1 | 0 | 0 | 0 | 0 |
| Renardo Green | CB | 1 | 0 | 0 | 0 | 0 |
Kicking
| Player | Pos | FGM | FGA | XPM | LNG |
|---|---|---|---|---|---|
| Jeremy Crawshaw | P | 0 | 0 | 0 | 0 |
| Wil Lutz | K | 0 | 1 | 3 | 0 |
| Eddy Pineiro | K | 0 | 0 | 4 | 0 |

