| 1st | 2nd | 3rd | 4th | Tot | |
| DEN | 0 | 20 | 3 | 7 | 30 |
| SF | 9 | 0 | 0 | 0 | 9 |
A group consisting primarily of backup players outplayed the Denver Broncos' starters in spirited fashion during the early going of the 49ers' preseason debut at Levi's Stadium on Saturday evening, but the 49ers hit the snooze button after that as the Broncos' backups rallied from a first half deficit before pulling away from the 49ers for a 30-9 win.
The 49ers jumped out to a 9-0 first quarter lead due to an early touchdown run and a safety, but they didn't do much from there as the Broncos scored 30 unanswered points to finish the game. Mac Jones started at quarterback for the 49ers and finished with 74 yards and an interception on 4-of-7 passing. Bo Nix started for the Broncos at quarterback and went 6-of-11 for 31 yards before being relieved by Jarrett Stidham, who finished with 136 yards and two touchdowns on 14-of-15 passing. The 49ers committed four total turnovers on the evening, three of those coming on interceptions.
First Half
The 49ers got on the scoreboard right out of the gate with an eight-play, 71-yard drive that ended in a 5-yard touchdown run from running back Patrick Taylor. A 50-yard completion from Jones to wide receiver Jordan Watkins put the 49ers inside the Denver 20-yard line on the third play of the drive, then Taylor ran in five plays later to put the 49ers up 7-0.
Skipping his way in??
📺: KPIX
— San Francisco 49ers (@49ers) August 10, 2025
NFL+ // https://t.co/KTh0i4oaLh pic.twitter.com/SGEU64GTKU
After forcing a punt on the next possession, the 49ers were given strong field position at their own 43-yard line due to a 28-return by Junior Bergen. After a completion moved the 49ers across midfield, the 49ers were pushed backwards by the Broncos' pass rush, then punted back to the Broncos, who took over at their own 10-yard line. Three plays later, the 49ers got a gift from Nix when he was flagged for intentional grounding in the end zone, giving the 49ers a safety and a 9-0 lead.
Safety! @49ers add two points to their lead
Stream on @NFLPlus pic.twitter.com/1nNFaGuQVq
— NFL (@NFL) August 10, 2025
Another solid return from Bergen gave the 49ers possession at their own 36-yard line after the safety, but the Broncos halted the 49ers' momentum with an interception from cornerback Ja'Quan McMillan near midfield. The 49ers held the Broncos to a 42-yard field goal from kicker Will Lutz, which cut the lead to 9-3 early in the second quarter.
J-MAC WITH THE PICK 👐@Island2_1 x #DENvsSF pic.twitter.com/BGSobL8FzT
— Denver Broncos (@Broncos) August 10, 2025
A new group of players entered the lineup on the next possession for the 49ers, led by Carter Bradley at quarterback. The 49ers were held to a three-and-out on the possession, then the Broncos took over at their own 45-yard line following a 25-yard punt return from Courtney Jackson. Jarrett Stidham entered the game at quarterback for the Broncos and led a 13-play drive inside the 49ers' 20 before the 49ers stiffened on defense and forced another field goal from Lutz, this one from 32 yards to cut the lead to 9-6.
The Broncos quickly regained possession from there after Bradley was picked off by linebacker Karene Reid, who set the Broncos up at the 49ers' 35-yard line. Seven plays later, the 49ers had a coverage breakdown that left tight end Lucas Krull as wide open in the end zone as one can get, which Stidham took advantage of with an 8-yard touchdown pass for a 13-9 lead with 1:30 remaining in the half.
Even Lucas Krull could believe he was this open 😅
Stream on @NFLPlus pic.twitter.com/ISsssG0T8R
— NFL (@NFL) August 10, 2025
That turned out to be plenty of time for the Broncos to put their second touchdown on the board, courtesy of former 49ers wide receiver Trent Sherfield. The 49ers punted back to the Broncos after a three-and-out, then after a 19-yard completion from Stidham to Sherfield got the Broncos into 49ers' territory, Stidham connected with Sherfield inside the pylon for a 36-yard touchdown and a 20-9 lead with 26 seconds remaining.
Jarrett Stidham goes long to Trent Sherfield Sr.
TOUCHDOWN 🎯
Stream on @NFLPlus pic.twitter.com/8FESKuvyIy
— NFL (@NFL) August 10, 2025
The 49ers ended the half with a three-and-out and headed to the locker room with a clear deficit on the stat sheet, despite jumping out to a 9-0 lead. The Broncos held a yardage edge of 208 to 104 at the half, with 12 first downs to just four from the 49ers and a time of possession edge of 18:08 to 11:52.
Second Half
The Broncos opened the second half with a punt, then the 49ers moved inside the Broncos' 40-yard line on a 10-play drive that got started with a 19-yard completion from Bradley to tight end Jake Tonges and was anchored from there by running backs Ameer Abdullah and Corey Kiner. But on a 3rd-and-1 play from the Broncos' 38-yard line, Abdullah took a hit from safety JL Skinner that left him injured and jarred the ball loose, which was recovered at the 37-yard line by defensive end Sai'Vion Jones. The Broncos turned the fumble into a 45-yard field goal from Lutz and a 23-9 lead with just under two minutes left in the third quarter.
Tanner Mordecai took over at quarterback for the 49ers to finish out the game, while Sam Ehlinger took the fourth quarter snaps at quarterback for the Broncos. The teams traded punts after Lutz's field goal, then the 49ers turned the ball over on downs at their own 38 yard line with just over 10 minutes left in the fourth quarter. The 49ers' defense returned the favor by forcing a turnover on downs at the 31-yard line, but the 49ers turned the ball back over to the Broncos when Mordecai was intercepted at midfield by cornerback Joshua Pickett.
Pickett picked it!#DENvsSF | 📺: 9NEWS pic.twitter.com/fg00D9svTk
— Denver Broncos (@Broncos) August 10, 2025
The Broncos then moved 50 yards in 10 plays, capping their drive with a seven-yard touchdown pass from Ehlinger to tight end Caden Prieskorn to take a 30-9 lead. The drive took nearly five minutes off the clock, leaving the 49ers with just over two minutes to work with the rest of the way.
Caden Prieskorn extends the @Broncos' lead 🙌
Stream on @NFLPlus pic.twitter.com/KGRpcY1kkW
— NFL (@NFL) August 10, 2025
The 49ers went three and out on their final possession, giving the ball back to the Broncos with 1:40 remaining. The Broncos ran out the clock from there to finish off the 49ers and move to 1-0 on the preseason.
Game Notes: The 49ers and Broncos faced off after holding joint practices in Santa Clara earlier in the week... While the 49ers played mostly backups in the game, the Broncos fielded multiple starters... Starting on offense for the 49ers, in addition to Jones, Taylor and Watkins, were wide receiver Demarcus Robinson, tight ends Luke Farrell and Brayden Willis, and offensive linemen Spencer Burford (LT), Austen Pleasants (RT), Ben Bartch (LG), Nick Zakelj (RG), and Matt Hennessy (C). Starting on defense for the 49ers were defensive ends Jonathan Garvin and Bryce Huff; defensive tackles CJ West and Kalia Davis; linebackers Dee Winters, Tatum Bethune and Luke Gifford; cornerbacks Darrell Luter and Dallis Flowers; and safeties Marques Sigle and Jason Pinnock... Next up for the 49ers will be a game against the Raiders at Allegiant Stadium in Las Vegas. The game will kick off at 4 p.m. EST/1 p.m. PST on Saturday, August 16, and will be televised on the NFL Network.
Scoring Summary
- Q1 10:46 — DEN 0, SF 7
P. Taylor 5 yd. run (J. Moody kick) (8 plays, 71 yds, 4:19) - Q1 03:25 — DEN 0, SF 9
Penalty on B. Nix enforced in end zone for a Safety - Q2 13:43 — DEN 3, SF 9
W. Lutz 42 yd. Field Goal (9 plays, 26 yds, 3:55) - Q2 04:38 — DEN 6, SF 9
W. Lutz 32 yd. Field Goal (13 plays, 41 yds, 6:56) - Q2 01:35 — DEN 13, SF 9
L. Krull 8 yd. pass from J. Stidham (W. Lutz kick) (7 plays, 35 yds, 1:33) - Q2 00:33 — DEN 20, SF 9
T. Sherfield 36 yd. pass from J. Stidham (W. Lutz kick) (3 plays, 61 yds, 0:33) - Q3 01:43 — DEN 23, SF 9
W. Lutz 45 yd. Field Goal (6 plays, 36 yds, 4:29) - Q4 02:21 — DEN 30, SF 9
C. Prieskorn 7 yd. pass from S. Ehlinger (W. Lutz kick) (10 plays, 50 yds, 4:56)
Game and Player Stats
| DEN | Team Stats | SF |
| 215 | Passing Yards | 107 |
| 153 | Rushing Yards | 96 |
| 368 | Total Yards | 203 |
| 6.17 | Avg Yards per Pass | 4.7 |
| 4.5 | Avg Yards per Run | 4.17 |
| 0 | Fumbles Lost | 1 |
| 0 | Int Thrown | 3 |
| 2 | Sacks Allowed | 3 |
| 00:36:58 | Time of Pos | 00:23:02 |
| 11 | Penalties | 9 |
| Broncos Player Stats | ||||
| Passing | Cmp/Att | Yds | TDs | INTs |
| Jarrett Stidham | 14/15 | 136 | 2 | 0 |
| Sam Ehlinger | 6/10 | 55 | 1 | 0 |
| Bo Nix | 6/11 | 31 | 0 | 0 |
| Rushing | Att | Yds | Avg | TDs |
| Jarrett Stidham | 3 | 36 | 12 | 0 |
| Tyler Badie | 5 | 32 | 6.4 | 0 |
| Blake Watson | 4 | 28 | 7 | 0 |
| RJ Harvey | 7 | 25 | 3.6 | 0 |
| Audric Estime | 8 | 21 | 2.6 | 0 |
| Sam Ehlinger | 4 | 6 | 1.5 | 0 |
| Jaleel McLaughlin | 3 | 5 | 1.7 | 0 |
| Receiving | Rec | Tgt | Yds | TDs |
| Trent Sherfield | 3 | 3 | 73 | 1 |
| Pat Bryant | 2 | 2 | 21 | 0 |
| Blake Watson | 3 | 3 | 21 | 0 |
| Audric Estime | 1 | 1 | 20 | 0 |
| Troy Franklin | 3 | 4 | 18 | 0 |
| Joaquin Davis | 1 | 1 | 14 | 0 |
| Tyler Badie | 2 | 2 | 9 | 0 |
| Courtney Jackson | 2 | 4 | 9 | 0 |
| Lucas Krull | 1 | 2 | 8 | 1 |
| Caden Prieskorn | 1 | 1 | 7 | 1 |
| Devaughn Vele | 1 | 1 | 6 | 0 |
| Jaleel McLaughlin | 1 | 1 | 5 | 0 |
| J.K. Dobbins | 1 | 1 | 4 | 0 |
| RJ Harvey | 1 | 2 | 4 | 0 |
| Marvin Mims | 1 | 1 | 3 | 0 |
| Courtland Sutton | 1 | 3 | 2 | 0 |
| Jerjuan Newton | 0 | 1 | 0 | 0 |
| Kyrese Rowan | 0 | 1 | 0 | 0 |
| Michael Bandy | 1 | 1 | -2 | 0 |
| Fumbles | Fum | Lost | ||
| Jarrett Stidham | 1 | 0 | ||
| Courtney Jackson | 1 | 0 | ||
| Kicking | FG | Att | Lg | XP |
| Wil Lutz | 3 | 3 | 45 | 3 |
| Punting | No | Avg | I20 | Lg |
| Jeremy Crawshaw | 3 | 27.7 | 0 | 50 |
| Punt Returns | Att | Avg | TDs | Lg |
| Courtney Jackson | 2 | 15.5 | 0 | 25 |
| Michael Bandy | 1 | 6 | 0 | 6 |
| Defense | T-A | Sck | INTs | FF |
| Jordan Jackson | 6-5 | 0 | 0 | 0 |
| Jordan Turner | 3-2 | 0 | 0 | 0 |
| Keidron Smith | 3-0 | 0 | 0 | 0 |
| Brandon Jones | 2-1 | 0 | 0 | 0 |
| Talanoa Hufanga | 2-1 | 0 | 0 | 0 |
| Que Robinson | 2-1 | 0 | 0 | 0 |
| JL Skinner | 2-1 | 0 | 0 | 1 |
| Joshua Pickett | 2-1 | 0 | 1 | 0 |
| Justin Strnad | 2-0 | 0 | 0 | 0 |
| Garrett Nelson | 2-0 | 0 | 0 | 0 |
| Jahdae Barron | 2-0 | 0 | 0 | 0 |
| Karene Reid | 2-0 | 0 | 1 | 0 |
| Malcolm Roach | 1-1 | 0 | 0 | 0 |
| Dondrea Tillman | 1-1 | 0 | 0 | 0 |
| Eyioma Uwazurike | 1-1 | 0 | 0 | 0 |
| Andrew Farmer | 1-1 | 0 | 0 | 0 |
| Jordan Miller | 1-1 | 0 | 0 | 0 |
| J.B. Brown | 1-1 | 0 | 0 | 0 |
| Kristian Williams | 1-1 | 0 | 0 | 0 |
| D.J. Jones | 1-0 | 0 | 0 | 0 |
| P.J. Locke | 1-0 | 0 | 0 | 0 |
| Sam Franklin | 1-0 | 0 | 0 | 0 |
| Riley Moss | 1-0 | 0 | 0 | 0 |
| Kris Abrams-Draine | 1-0 | 0 | 0 | 0 |
| Levelle Bailey | 1-0 | 0 | 0 | 0 |
| Quinton Newsome | 1-0 | 0 | 0 | 0 |
| Jonah Elliss | 1-0 | 0 | 0 | 0 |
| Jaden Robinson | 1-0 | 0 | 0 | 0 |
| John Franklin-Myers | 1-0 | 1 | 0 | 0 |
| Nik Bonitto | 1-0 | 1 | 0 | 0 |
| 49ers Player Stats | ||||
| Passing | Cmp/Att | Yds | TDs | INTs |
| Mac Jones | 4/7 | 74 | 0 | 1 |
| Carter Bradley | 6/14 | 32 | 0 | 1 |
| Tanner Mordecai | 3/6 | 21 | 0 | 1 |
| Rushing | Att | Yds | Avg | TDs |
| Corey Kiner | 10 | 45 | 4.5 | 0 |
| Ameer Abdullah | 4 | 20 | 5 | 0 |
| Tanner Mordecai | 1 | 15 | 15 | 0 |
| Patrick Taylor | 5 | 7 | 1.4 | 1 |
| Ke'Shawn Vaughn | 1 | 4 | 4 | 0 |
| Jordan Watkins | 1 | 3 | 3 | 0 |
| Mac Jones | 1 | 2 | 2 | 0 |
| Receiving | Rec | Tgt | Yds | TDs |
| Jordan Watkins | 3 | 6 | 56 | 0 |
| Jake Tonges | 2 | 2 | 36 | 0 |
| Demarcus Robinson | 2 | 2 | 20 | 0 |
| Isaiah Hodgins | 1 | 3 | 5 | 0 |
| Patrick Taylor | 1 | 1 | 4 | 0 |
| Russell Gage | 2 | 4 | 3 | 0 |
| Corey Kiner | 1 | 1 | 2 | 0 |
| Robbie Chosen | 1 | 2 | 1 | 0 |
| Terique Owens | 0 | 1 | 0 | 0 |
| Junior Bergen | 0 | 1 | 0 | 0 |
| Fumbles | Fum | Lost | ||
| Tanner Mordecai | 1 | 0 | ||
| Ameer Abdullah | 1 | 1 | ||
| Punting | No | Avg | I20 | Lg |
| Thomas Morstead | 5 | 33 | 2 | 44 |
| Punt Returns | Att | Avg | TDs | Lg |
| Junior Bergen | 1 | 28 | 0 | 28 |
| Defense | T-A | Sck | INTs | FF |
| Chase Lucas | 8-3 | 0 | 0 | 0 |
| Marques Sigle | 7-2 | 0 | 0 | 0 |
| Derrick Canteen | 7-1 | 0 | 0 | 0 |
| Tatum Bethune | 6-1 | 0 | 0 | 0 |
| Nick Martin | 5-3 | 0 | 0 | 0 |
| Stone Blanton | 5-3 | 0 | 0 | 1 |
| Darrell Luter | 5-2 | 0 | 0 | 0 |
| Sebastian Valdez | 4-2 | 0.5 | 0 | 0 |
| Jaylen Mahoney | 4-0 | 0 | 0 | 0 |
| Tre Brown | 3-1 | 0 | 0 | 1 |
| Kalia Davis | 3-0 | 1 | 0 | 0 |
| Bradlee Anae | 2-2 | 0 | 0 | 0 |
| Luke Gifford | 2-1 | 0 | 0 | 0 |
| Jason Pinnock | 1-1 | 0 | 0 | 0 |
| Jaylon Allen | 1-1 | 0 | 0 | 0 |
| Robert Beal | 1-1 | 0.5 | 0 | 0 |
| Jonathan Garvin | 1-0 | 0 | 0 | 0 |
| Michael Dwumfour | 1-0 | 0 | 0 | 0 |
| Dallis Flowers | 1-0 | 0 | 0 | 0 |
| Jalen Graham | 1-0 | 0 | 0 | 0 |
| Jakob Robinson | 1-0 | 0 | 0 | 0 |