

SANTA CLARA, Calif. – The Brock Purdy-to-Ricky Pearsall connection that had been on fire in recent practices? Doused.
Christian McCaffrey’s first carry of the day? Stuffed.
The end arounds and razzle-dazzle plays the San Francisco 49ers attempted? Blown to pieces.
The Denver Broncos were the aggressors early in Thursday’s joint scrimmage, especially a Broncos defense that finished third last year in rushing yards allowed and added a pair of former 49ers starters, linebacker Dre Greenlaw and safety Talanoa Hufanga, in the offseason. Although Greenlaw (quadriceps) was limited to cheering from the sideline, Hufanga was visible — and audible — throughout the session, knocking running back Ameer Abdullah to the turf on one play and zooming into the backfield to upend a Pearsall carry on another.
Advertisement
Pearsall, who’d looked sharp in recent practices, seemed to have a particularly tough time. He was shut down by cornerback Pat Surtain II on the first repetition of one-on-one drills, a pass to Pearsall in seven-on-seven was tipped and intercepted, and the first three throws from Purdy to Pearsall in 11-on-11 situations also fell incomplete.
“I think they came out ready to roll, to compete,” Purdy said of Denver’s defense. “You could feel them. They were in the backfield a couple times, had a couple sacks and obviously some (tackles for loss).”
But as the two-hour-plus practice — the longest of the year for San Francisco — wore on, Purdy and the 49ers seemed to gain strength. He connected on his next two 11-on-11 attempts to Pearsall, including a nicely placed over-the-shoulder touchdown grab by the wide receiver that capped a move-the-ball period for the first-team offense.
“It’s something that we’ve been practicing this whole offseason — him fighting through contact and getting separation, and then the ball was right there, and it was just good timing,” Purdy said. “It’s something that we’ve been repping. So I’m glad we got that against another defense in a crucial situation. I think it was third down, and we needed that, and he made the catch and scored.”
Pearsall was mobbed by teammates, and the score seemed to energize the 49ers’ offensive units, which marched up and down the field at the end of practice, including in a rare two-minute drill. Purdy, who at one point was 3 of 8 in team sessions, finished the practice 16 of 25 with touchdowns to Pearsall, McCaffrey (in a red zone drill) and Demarcus Robinson.
Purdy said he liked how the team responded to its slow start.
“You’re not going to have a great first half, but you regroup, and then how are you going to finish?” he said. “I thought we had a good second half of the practice and faced some adversity as an offense, and then bouncing back and having some good periods at the end. We need that kind of stuff to understand where we’re at and where we need to get better and learn from it and understand that football’s not going to be perfect, but how are you going to respond?”
Advertisement
Odds and ends
• The 49ers had a scare when first-round pick Mykel Williams went to the ground with a knee injury during an 11-on-11 period. Williams eventually got to his feet and walked off under his own power. Coach Kyle Shanahan said the initial test showed a hyperextension, which he said was good news considering all the other types of knee injuries that could have occurred. Williams might miss a week of practices and won’t take part in Saturday’s preseason game against the Broncos.
Another rookie, running back Jordan James, suffered a broken finger this week. He will have surgery and miss a couple of weeks. With Isaac Guerendo (shoulder) also out of action, the team’s healthy tailbacks are McCaffrey, Patrick Taylor Jr., rookie Corey Kiner and Abdullah. Fullback Kyle Juszczyk was back at practice after suffering a cut on his heel on Saturday.
Shanahan said defensive backs Marques Sigle and Darrell Luter Jr. were checked for concussions but turned out to be OK.
• With Kevin Givens (pectoral), Evan Anderson (knee) and Jordan Elliott (back) out of action, the 49ers signed defensive tackle Michael Dwumfour, who played in two games for them at the end of the 2022 season. To make room, the team released cornerback Eli Apple.
• The absences at defensive tackle meant plenty of first-team snaps for rookies C.J. West and Alfred Collins. Collins looked good in one-on-one drills, while West had one of several would-be sacks of quarterback Bo Nix. West and defensive end Nick Bosa converged on Nix from the quarterback’s blind side for one of the sacks, with Bosa beating Garett Bolles and West getting around left guard Ben Powers.
Bosa, who’d missed the last three practices, stood out when the Broncos’ top unit was on offense. He had quarterback hurries and would-be sacks against Bolles and right tackle Mike McGlinchey.
Alfred Collins is out there moving 😮💨 pic.twitter.com/fIZDO0XrDI
— San Francisco 49ers (@49ers) August 7, 2025
• McCaffrey and George Kittle were two of the best players on the field, as they should be, and were constants in a down-and-up day for the 49ers offense. McCaffrey made catches on the sideline and in the end zone and looked bouncy in the run drills, while Kittle caught everything, including a high grab on a Purdy rollout to the left.
Advertisement
• McCaffrey’s 7-yard touchdown catch came after the Broncos’ defense had held the 49ers’ first-team and second-team offense scoreless on 14 red zone plays. Purdy finally had good protection, giving him time to see McCaffrey come open in the side of the end zone.
“The minute he goes into a one-on-one situation — I’m drooling over that,” Purdy said of McCaffrey. “I want that. And we’ve got to capitalize on that. So today I thought we got some really good work out of that. I think by him being there, you get other guys that open up as well, so I thought it was really good.”
• Though Surtain blanketed Pearsall early, Robinson and rookie Jordan Watkins had some success against the league’s top cornerback. Watkins had a big day, catching four of the five targets in 11-on-11 situations, including a long touchdown from Mac Jones during one of the move-the-ball sessions.
Watkins had a strong start to camp, might have hit an early rookie wall learning the offense and then seemingly broke through against the Broncos.
“I thought he had a better day — we’re pushing him hard, and some days are gonna be up, some are gonna be down, but he’s got to keep going forward,” Shanahan said, “We’re gonna have him ready for the season, and he’s still working his way to get there.”
Jordan Watkins house call 🏡 pic.twitter.com/pSqQZ3QeR4
— San Francisco 49ers (@49ers) August 7, 2025
• Jones also had deep completions to receivers Robbie Chosen and Terique Owens and finished the scrimmage 13 of 16 with an interception. The other two incompletions were spikes to stop the clock in a two-minute situation.
“Mac’s doing a good job,” Shanahan said. “We’ve really liked what we’ve seen from him so far. We had an idea of what we hoped he’d be like, and he’s been exactly that. He’s been playing really well, and hopefully he’ll continue that.”
Advertisement
• Shanahan said he was pleased with the two-minute drill, as it was the first live one of camp. Normally, the 49ers run it at half speed later in the day to prevent injuries.
• One of the reasons Purdy was so harried early: Though left tackle Trent Williams was in uniform, he yielded to backup Spencer Burford during 11-on-11 situations.
• Jake Moody capped the second-team offense’s two-minute drill with a 53-yard field goal. Another from 33 yards struck the left upright.
(Photo of Brock Purdy: Godofredo A. Vásquez / Associated Press)
This news was originally published on this post .
Be the first to leave a comment