![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237465.jpg?w=1000&h=600&crop=1)
The 49ers on Saturday evening knocked off the Broncos 21-20 at Levi’s Stadium in a preseason thriller.
San Francisco’s victory was an overall cleaner game than the one they played in the preseason opener, but there were still performances that stood out on both the good and bad ends of the spectrum.
Here are some studs and a few duds from the 49ers win:
Stud: WR Ronnie Bell
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237407.jpg?w=1000)
It’s not just that Bell had seven catches for 114 yards. He showed off a ton of after-the-catch ability and included a couple nice kick returns on special teams. He’s also been affecting games in all three levels of the passing game. Bell’s tenacity as a runner will only endear him further to San Francisco’s coaching staff. If not for a couple miscues (more on this later) he’d be a lock to make the roster.
Dud: Ronnie Bell's hands
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237360.jpg?w=1000)
For all the good Bell has done this preseason, he’s also been directly responsible for two of their turnovers. For the second game in a row he had a good throw go through his hands and to a defender for an interception. On Saturday he also fumbled, but the 49ers recovered. A penchant for giving the ball away is one way a very good preseason performance can get overshadowed.
Stud: K Jake Moody
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237249.jpg?w=1000)
Moody did miss an extra point, but he showed the moxie that have the 49ers enamored with him. After missing both field goal tries against the Raiders, Moody stepped in and drilled three vs. Denver, including a 32-yarder for the win as time expired. He also connected from 20 and 43 yards out. Working through adversity was going to be vital for Moody, who appears to be back on track and heading the right direction.
Dud: Early Trey Lance
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/1610630770.jpg?w=1000)
Lance did look more comfortable to begin his outing Saturday late in the third quarter. However, he threw an interception on a screen pass, looked hesitant on another throw, and misfired a couple times in the middle of the field with two of his throws nearly getting picked off. The first couple series weren’t kind to Lance in his battle for the backup QB job (more on his outing soon).
Stock up: Late Trey Lance
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/1626491402.jpg?w=1000)
After his second near-INT, which came on a first-and-20 with 5:27 left in the fourth quarter, Lance flipped a switch. He completed his next six throws, including a touchdown to tight end Cameron Latu. The most encouraging signs were that the QB wasn’t hesitating to throw into tight windows, and his accuracy was very good on short throws and on his throws down the field. If Lance played every snap like he did the final 5:30 of Saturday’s game he’d be pushing for a starting job.
Dud: DB Myles Hartsfield
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237339.jpg?w=1000)
Hartsfield was an exciting offseason addition for the 49ers given his versatility as a safety, cornerback and linebacker. Saturday was a rough outing for him though. He whiffed a tackle in the deep red zone that led to a touchdown. He also overran a pass catcher at the goal line after getting to the play late and allowed a TD. The DB room is crowded which was going to make it tough for Hartsfield to land a roster spot no matter what. Standing out for the wrong reasons isn’t going to help.
Stud: CB Samuel Womack III
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2022/08/1414536520-1.jpg?w=1000)
Cornerback Ambry Thomas on Saturday got the first-team run as the nickel cornerback, but Womack might’ve done the most to help his case for lining up a starting job. He posted two tackles and a pair of pass breakups. Womack also came up with a strong tackle on a short throw to eliminate YAC. Even if Womack isn’t a starter, he’s proving himself to be a quality depth piece in the 49ers’ CB room.
Dud: CB D'Shawn Jamison
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/1614433036.jpg?w=1000)
Jamison looked to be making his way toward a roster spot with his return abilities after the preseason opener. Saturday night wasn’t as helpful in that realm. He muffed one punt and then made an ill-advised cutback on another that put him in a dangerous spot. To make matters worse on his muffed punt, he tried picking the ball up instead of just falling on it, which allowed a Broncos gunner to launch himself onto the ball for a recovery deep in 49ers territory. There’s still a path for Jamison to make the club after a good training camp, but he may need to bounce back with a good special teams performance in the preseason finale.
Stud: TE Cameron Latu
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237396.jpg?w=1000)
Not many players needed to bounce back more than Latu. He’s had drop problems in practice, then fumbled on his only catch in the preseason opener. On Saturday he racked up three catches for 46 yards and scored a touchdown while looking much more comfortable on an NFL field. His blocking is what will get him on the field, but he had to show more as a receiver to have a real shot at making the team and having a role in his rookie year. He did that against the Broncos and put himself on an upward trajectory entering the final week of the preseason.
Stud: Rookie LBs
![](https://ninerswire.usatoday.com/wp-content/uploads/sites/77/2023/08/USATSI_21237338.jpg?w=1000)
Jalen Graham and Dee Winters both helped their causes to make a 49ers roster that’s loaded at linebacker. Each 2023 draft pick had two tackles and a forced fumble. They also both look the part of NFL linebackers both against the run and in coverage. San Francisco probably has seven or eight NFL LBs on their 90-man roster, but it’ll likely only be five on the 53-man. Leaving Graham and Winters out might be tough.