Week 4 takeaways: three points in seven drives, then Siran Neal forced a fumble
The offense had three points through seven possessions against Denver, then scored touchdowns on three straight after Siran Neal forced and recovered a fumble on punt coverage. Brock Purdy has still not been sacked this season. Kyle Juszczyk, Upton Stout and Marques Sigle were hurt.

San Francisco beat Denver 24-14 at Levi's Stadium on Sunday and is 4-0. It was 3-3 at halftime. The 49ers' first seven possessions produced three points: four punts, a failed fourth-down sneak, a 24-yard Eddy Pineiro field goal, and a 54-yard try that Zach Allen blocked with four seconds left in the half. Their next three produced 21.
1. Siran Neal took the ball away on a punt, and the offense scored on the next three drives#
San Francisco was punting from its own 11 with 9:52 left in the third quarter, its second three-and-out of the half. Corliss Waitman's punt went 61 yards. Neal tackled Marvin Mims Jr. one yard into the return, knocked the ball out and recovered it at the Denver 28. It was the game's only turnover. Seven days earlier Neal muffed a punt that Arizona recovered at the San Francisco 28.
On the ninth play of the drive Brock Purdy threw to Deebo Samuel for a one-yard touchdown and a 10-3 lead. Drives of 74 and 69 yards followed, both for touchdowns.
Kyle Shanahan said the plan was to run the ball a lot, and that the coaches had challenged the special teams the night before. "We said, 'If we're going to meet those goals, we thought the special teams would have to get a turnover.' And Siran came through with that."
2. Purdy has not been sacked in four games, and Denver led the league in sacks last year#
The Broncos had 68 sacks in 2025, the most in the league. On Sunday the game book credits them with four quarterback hits, three by Zach Allen, and no sack. San Francisco is the first team to open a season with four straight games without allowing one since the 2005 Colts, according to the Elias Sports Bureau, by way of the club's game notes.
All five starting linemen played all 66 offensive snaps, Trent Williams included, a week after he left the Arizona game with a stinger.
Purdy was 19 of 30 for 218 yards, two touchdowns and no interception. He opened the second half with four straight incompletions, which left him 10 of 20, then completed nine of his last 10 for 129 yards and both scores.
3. Kittle's 56-yard touchdown came on second-and-8 with a three-point lead#
Denver had cut it to 17-14 with 4:05 left on a 13-yard Bo Nix touchdown pass to Jaylen Waddle and a two-point run. San Francisco had the ball at its own 44 with 2:25 to go when Purdy threw a screen to George Kittle, and the play went 56 yards for a touchdown. Shanahan said he expected a blitz with no deep safety, which coaches call zero. "We thought if we could get it versus zero and just get the screen off and make one block, then that's what we'd envisioned," he said.
It was Kittle's 56th touchdown catch, one more than Vernon Davis and the most by a tight end in franchise history, per the club. Kittle caught four of six targets for 70 yards and played 60 of 66 snaps, 91 percent.
4. The running backs averaged 3.1 yards, and Samuel had the two longest runs of the day#
San Francisco ran 35 times for 140 yards. Christian McCaffrey and Kaelon Black had 21 of those carries for 65. Samuel carried three times for 44, with runs of 22 and 20 yards that were the two longest by either team. Purdy ran 10 times for 29, two of them kneel-downs.
San Francisco ran a play on third or fourth down with one yard to go 10 times and converted seven. The three stops all came before the first touchdown: a Purdy sneak on fourth down at the Denver 34, a McCaffrey run at the San Francisco 21 that brought on a punt, and a Black run at the Denver 19. On the fourth down that followed, the snap went to Black, who was not supposed to get it, and he ran for two yards and the first down. "It was a bad snap. We didn't call a direct snap," Shanahan said.
5. Evans played 39 snaps with a rib injury and led the team in receiving yards#
Mike Evans caught five of eight targets for 76 yards on 39 of 66 snaps, 59 percent. His 17-yard catch to the Denver 1 set up McCaffrey's touchdown. "I didn't think it was possible for him to play throughout the whole week, so in my mind I wasn't counting on it," Shanahan said.
Samuel played 44 snaps and caught five of six targets for 26 yards. Jordan Watkins played 25 snaps without a target. Jacob Cowing played 21 and Brandin Cooks eight, in Cooks's first game since his promotion from the practice squad on Thursday. Each was thrown to once and neither made a catch.
6. The defense allowed one touchdown without a sack or a takeaway#
Nix threw 42 passes and scrambled twice, and San Francisco did not sack him. The book credits two quarterback hits, to Sebastian Valdez and Keion White. Nick Bosa was inactive for the second straight game.
Nix completed 25 for 214 yards, and 10 of the 25 went to running back RJ Harvey for 68. Denver converted six of 11 third downs in the first half and two of six after it, and reached the red zone once.
Dre Greenlaw, who spent last season with the Broncos, had 12 tackles and forced a fumble that Denver recovered. He played 56 of 66 defensive snaps, a week after leaving with a quad injury. Nine defensive linemen played: Osa Odighizuwa 51 snaps, White 49, Romello Height 37, Valdez, Gracen Halton and Ogbo Okoronkwo 25 each, Khalid Kareem 19, Naquan Jones 15 and Matthew Judon 14. Judon, elevated on Saturday, was credited with one tackle.
7. Juszczyk, Stout and Sigle were hurt, and none has a diagnosis#
Kyle Juszczyk was hit on the knee at the end of a 16-yard catch on the first play of the drive that ended in McCaffrey's touchdown, and was ruled out. "Juice, we don't know for sure. They're thinking it was probably a knee sprain. His ACL and stuff looked intact, but to find out for sure we'll have to find out tomorrow," Shanahan said after the game. Juszczyk had played 27 snaps.
Upton Stout hurt a shoulder. "They're guessing an AC, but we won't know for sure until tomorrow," Shanahan said. The book has Stout back on the field with 2:07 left, and Shanahan said he then went out again. He played 36 of 66 snaps. Marques Sigle was hurt in the third quarter, returned, and was hurt again on the final kickoff. "They're not sure. They just thought ankle," Shanahan said.
San Francisco plays at Seattle on Sunday.
Sources: NFL official game book, Denver at San Francisco, Oct. 4, 2026 (lineups, scoring, individual, team, drive, defensive and playtime pages, play-by-play); Kyle Shanahan postgame transcript, 49ers communications staff, via 49ers Webzone, Oct. 4; 49ers game notes, Oct. 4, via 49ers Webzone; David Bonilla, 49ers Webzone, Oct. 4; Associated Press game story, Oct. 4; ESPN 2025 team statistics; club roster moves release, Oct. 3.










