What We Saw Roundup – Week 4

We watched every NFL Week 4 game so you don't have to – Here's what we saw!

Broncos @ 49ers

Final Score: 49ers 24, Broncos 14

Senior Writer: Benjamin Haller (@benjaminhaller1.bsky.social on Bluesky)

 

After a cagey first half which saw these two teams with Super Bowl aspirations trade a couple of measly field goals, Brock Purdy outplayed Bo Nix in the second half and took advantage of a couple of key injuries in the Denver secondary to propel the undefeated 4-0 San Francisco 49ers to another big win early in the season. The game changed on a controversial muffed punt turnover in which Marvin Mims Jr. was adjudged to have spilled the ball despite his wrist being under the ball prior to it coming loose. The 49ers won the review and scored a touchdown a few plays later and never let the luck slip. George Kittle once again scored a statement touchdown just as the Broncos looked to rally, but it was the resurgent 49ers defense that made the plays late to stifle the Broncos and earn the win.

 

Three Up

  • George Kittle – his recovery from injury has been remarkable, and his results on the field have rewarded fantasy managers so far this season. When the 49ers needed a big play in the passing game, Kittle answered once again.
  • Brock Purdy – Mr. Consistent, Purdy has been a fantasy darling through the first month of the season. He looks confident, poised, and ready to deliver.
  • Deebo Samuel – after a couple of years in the fantasy wilderness, Samuel once again showed his value as a flex option with his third touchdown in four games. Samuel has a clear role as a danger man in and around the red zone, and that’s music to fantasy managers’ ears.

Three Down

  • J.K. Dobbins – just hasn’t taken the lead-back opportunity and looks devoid of any big splash plays.
  • Courtland Sutton – after a big season in 2025, Sutton has failed to see the same amount of looks, and it is inexplicable. Where is he in this offense after showing great chemistry with Nix in 2025?
  • Pat Bryant – this is more about being unlucky, as the second-year wideout once again showed his big-play ability but left the game on a cart with an ankle injury in the second half

 

Denver Broncos

 

Quarterback

 

Bo Nix: 25/42, 214 Yards, TD | 2 Carries, 10 Yards

Is it a bad start? Is it the play calling of Davis Webb? Is it genuine regression? Whatever it is, Nix is not the same quarterback as he was last year. Another stuttering effort that wasn’t helped by poor play calling and a run game devoid of any consistency. Nix boasted a meagre 59.5% completion rate and a pathetic 5.1 yards per attempt on 42 attempted passes. The lack of service to veterans like Sutton and Evan Engram is as baffling as the calls coming from new play caller Webb. Nix was fearless last year, and his rushing was also a key factor against strong defenses, but that was also absent in this contest. The ankle may still be an issue after the surgery, so that worry could be tempered as the season goes on. 180 of his 214 passing yards came after the catch, with checkdowns to RJ Harvey making up a large chunk of those yards. The biggest issue is the lack of big plays and opportunities in the red zone. The Broncos threw only one pass inside the 49ers’ 20-yard line all day. Pathetic.

 

Running Back

 

J.K. Dobbins: 11 Carries, 40 Yards | 2 Targets, 2 Receptions, 12 Yards

Yes, the Broncos haven’t given up on Dobbins. But yes, they probably should. Dobbins was once again serviceable without providing any spark, which in big games like this becomes a huge problem. Despite the veteran back logging double-digit carries in three straight games now, he’s yet to muster more than 49 rushing yards in terms of a single-game high thus far this season. Putrid. The use of Harvey as the third-down option, and when the team is facing a large deficit (like in this game), also limits Dobbins’ ability to be on the field more.

 

RJ Harvey: 7 Carries, 25 Yards | 10 Targets, 10 Receptions, 68 Yards

PPR King Harvey likely surprised a few fantasy managers with his check-down work in this game. Harvey saw a season-high in touches as the Broncos reverted to a short passing game in the second half as they trailed by two scores.

 

Tyler Badie: 2 Carries, 7 Yards | 2 Targets, 2 Receptions, 32 Yards

 

Wide Receiver/Tight End

 

Pat Bryant: 3 Targets, 3 Receptions, 47 Yards

Bryant left the game after being tackled at the end of an impressive catch-and-run for 30 yards that finally sparked the Broncos offense into life near the end of the third quarter. Bryant was twice overlooked by Nix after beating his man on routes in the first half, but when his quarterback finally looked his way, Bryant made it count. He was down on the field for some time and had to be carted off after two bodies fell on his legs at the end of the run. It was enough to lead the wideouts in yardage on a miserable day for Webb’s reign.

 

Jaylen Waddle: 6 Targets, 5 Receptions, 35 Yards, TD

Scoring his first touchdown as a Bronco late in the fourth quarter wasn’t enough to inspire his team to a comeback win. Waddle had only caught three balls for 17 yards before Nix found him with a nice pass for a 13-yard score. Waddle worked his man to the outside expertly before cutting back inside to hit paydirt. It was too little, too late for the Broncos.

 

Marvin Mims Jr.: 3 Targets, 1 Reception, 10 Yards, Fumble (Lost)

Evan Engram: 5 Targets, 1 Reception, 6 Yards

Courtland Sutton: 6 Targets, 1 Reception, 4 Yards

Adam Trautman: 1 Target

 

San Francisco 49ers

 

Quarterback

 

Brock Purdy: 19/30, 218 Yards, 2 TD | 10 Carries, 29 Yards

This was the best-case scenario for Purdy against one of the league’s toughest defensive units. After struggling with pressure and timing in the first half, Purdy took advantage of injuries in the Broncos’ secondary by throwing for two scores in the second half to win the game for his team – the standout being a terrific 56-yard connection with his comfortable blanket, Kittle, just before the two-minute warning. Purdy showed excellent awareness in the pocket all day, mainly to avoid giving up a sack. He hasn’t thrown an interception in his past three games and leads the league with 11 touchdown passes. He used his feet brilliantly today, and those rushing yards all add to happy fantasy times for the San Francisco quarterback.

 

Running Back

 

Christian McCaffrey: 15 Carries, 52 Yards, TD | 5 Targets, 3 Receptions, 18 Yards

Is this the new fantasy normal for McCaffrey after a couple of years of excessive use in this offense? McCaffrey is tracking well below his average touches per game with 16 per contest compared to 24.3 in 2025, but that hasn’t stifled his fantasy effectiveness too much. After worries about emerging rookie Kaelon Black, it was the veteran who led the backfield and was on the field exclusively with the game on the line after the half. McCaffrey burst up the middle on a signature 14-yard run midway through the third quarter to break the resolve of a depleted Broncos defense before punching the ball in a few plays later from the 1-yard line to put the 49ers up by 11 with 8:52 left in the game. The veteran then battled tacklers on a 9-yard run to move the chains to set up the Kittle score on the following drive.

 

Kaelon Black: 6 Carries, 13 Yards

Kyle Juszczyk: 2 Targets, 2 Receptions, 28 Yards

 

Wide Receiver/Tight End

 

Mike Evans: 8 Targets, 5 Receptions, 76 Yards

Another productive week for the veteran wideout, who is enjoying his time in San Francisco. Evans has been nursing a rib injury over the past few weeks, but he’s shown his mettle with some big catches in key situations. He was dominant on the outside for the 49ers against press coverage, his best catch coming prior to the 49ers’ second score – a 17-yard catch and run down the left sideline that he looked to be taking all the way into the end zone before a late tackle putting him short at the 1-yard line. Unlucky for fantasy purposes.

 

George Kittle: 6 Targets, 4 Receptions, 70 Yards, TD

YAC! Kittle was his usual nuisance in the passing and blocking games, with the Broncos putting Patrick Surtain on the big tight end for much of the contest until he left the game with an injury. Kittle then “called game” with this phenomenal 56-yard catch-and-run just when the Broncos had scored to come within 3 points. It was his fourth touchdown in three weeks as he has quickly reclaimed elite tight end status for fantasy purposes in 2026.

 

Deebo Samuel Jr.: 6 Targets, 5 Receptions, 26 Yards, TD

Samuel was the beneficiary of patience as his quarterback scrambled around left, right, and then left again before spotting the veteran wideout all alone near the sideline in the end zone for the 49ers’ first score of the game. Finding his feet once again in his old home, Samuel has a clear flex fantasy role, and if you had said to any manager taking a shot on him in their draft that he would have caught 14-of-17 targets for 185 yards and three touchdowns while adding seven rushes for 74 yards through the first month, even the most optimistic would not have believed you.

 

Brandin Cooks: 1 Target

Jacob Cowing: 1 Target | 1 Carry, 2 Yards

Brett Ford

Writer, Editor and Podcast host for QBList.com, Ravens fan, Cool Dad