We saw a glimpse of what the 49ers offense will look like this season. It was only a preview, though, as the first-team was without Trent Williams and George Kittle. However, their absences didn’t stop the offense from marching down the field.
Deebo Samuel caught two screen passes from Brock Purdy on two of the first three plays for gains of 25 and 14 yards. That was enough of Deebo for the day. Purdy also found Jauan Jennings for 11 yards on a rollout pass ad Brandon Aiyuk in rhythm for a 15 yard gain.
Unfortunately, Purdy was sacked from the two-yard line and the offense could never recover. Jake Moody’s kick was good from 20 yards out.
We saw Javon Hargrave for the first time, along with the rest of the first-team defense. Ji’Ayir Brown and Demetrius Flannigan-Fowles started in the place of Tashaun Gipson and Dre Greenlaw. The Niners defense surrendered drives of 13 and 12 plays, but held Denver to a field goal both times.
After there were scores on three of the first four possessions, neither team would punch it in for the rest of the first half.
You can thank Brown for Denver not scoring. After Ambry Thomas bit on a double move with seconds remaining in the second quarter, Ji’Ayir hustled to make a touchdown saving tackle. The Broncos were out of timeouts, and didn’t get to the line of scrimmage in time to spike the ball.
Sam Darnold made a couple of plays with his arm and his feet, but multiple holding penalties stalled his drives in the first half. Then, in the third quarter, in what looked to be a promising drive, Ronnie Bell saw a pass hit him in the hands, but the ball bounced into the air and fell into the arms of a Bronco.
That’s the second time in as many games for Bell. That won’t help him make the roster. The same goes for undrafted free agent D’Shawn Jamison, who muffed a punt return late in the third quarter. That turnover gave the Broncos the ball inside their 10-yard line, as they’d score on the ensuing play to take a 13-9 lead.
Darnold’s one blip came when he underthrew Chris Conley in the end zone. Conley was open for a touchdown. Still, Darnold impressed. He finished 11-for-14 for 109 yards. Darnold also had two carries for 18 yards.
Trey Lance’s first drive didn’t go as planned. The offense moved the ball, but Trey had his screen pass tipped by a defensive lineman, and another defender dove and caught the ball.
Lance converted a 3rd & 6 on the next drive, but penalties put the offensive behind the chains once again. Lance was fortunate that he didn’t throw another interception, as he failed to see the underneath linebacker. Then, on second down, he didn’t see Willie Snead. So, the 49ers had to settle for another field goal.
Jake Moody, who missed the extra point after Darnold’s touchdown pass — this coming after missing two kicks a week ago — was good from 43 yards. Moody’s kick made the score 13-12 with just over seven minutes to play.
The Broncos scored in two plays, after a 44 yard kickoff return and 43-yard run on the first play from scrimmage. Lance would come out again, this time with just over five minutes to play.
Joey Fisher was flagged for a (weak) holding call, which put the offensive immediately behind the sticks at 1st & 20. Then, Lance threw off his back foot and, again, was lucky that he didn’t throw an interception. Those are the throws that need to go ten rows into the stands.
After a few impressive throws, Lance found Cameron Latu streaking down the seam with nobody near him for a touchdown. Trey did an excellent job holding the safety, and Brandon Aiyuk was flagged for running onto the field and celebrating.
That had to be refreshing for the coaching staff and a weight lifted off Lance’s shoulders. Trey would have one final opportunity with just over two minutes left, trailing 20-18.
Right tackle Leroy Watson was beaten almost simultaneously off the snap on first down, forcing an incomplete pass. Shanahan had the perfect call on second down, as Vance Joseph blitzed the house, but Kyle had a screen to Ronnie Bell on for a gain of 14.
Lance found Bell for another in-breaking route, and Bell accelerated for 43 yards. The 49ers were in field goal range, and Jake Moody was in line to make the game-winner.
Ty Davis-Price made an impressive cut and gained 15 yards to ice the game. Denver tried to call a timeout in an attempt to get the ball back, but the 49ers kneeled on the ball to play keep away.
Moody made his kick from 32 yards out, and the 49ers beat Denver 21-20.
Next up: The preseason finale on Friday against the Los Angeles Chargers.