Want the latest Bay Area sports news delivered to your inbox? Sign up here to receive regular email newsletters, including “The Dime.”
Denver's defense is a rambunctious bunch, and rightfully so. The Broncos were the NFL's best unit last season, and they've fortified it for 2025, adding ex-49ers Dre Greenlaw and Talanoa Hufanga and first-round pick Jahdae Barron.
So early in Thursday's joint practice with the 49ers, Denver was particularly demonstrative. Defensive tackle D.J. Jones, another former 49er, bellowed in approval after a defensive stop. His teammate John Franklin-Myers roared after a pair of explosions through the 49ers' offensive line, both of which probably would've netted sacks in a game (defenses can't touch quarterbacks in practice).
The 49ers offense looked overwhelmed, and quarterback Brock Purdy seemed sped up. But coach Kyle Shanahan wasn't surprised. Earlier that morning, he'd met with Denver defensive coordinator Vance Joseph — whose unit had delivered a league-high 63 sacks last season — and invited the Broncos to throw the kitchen sink at the 49ers.
This was practice, and Shanahan wanted his team to sharpen its sword with the sharpest knife possible.
"I love working against Vance," Shanahan said. "Vance does so much stuff. We gave him a lot of different looks, too, that they don't normally get. He’s an ultimate pro with it — and our players handle each other well."
Sure enough, Purdy and the 49ers offense settled in. And once true scrimmage-style, move-the-chains work started, Shanahan's offense even established the upper hand.
Purdy found Christian McCaffrey, a Colorado native who said he enjoyed seeing familiar Denver-area news stations in attendance at practice, on a rhythm route to disrupt the Broncos' pressure.
Then, 49ers receiver Ricky Pearsall beat All-Pro Denver cornerback Patrick Surtain II on an out pattern to move the sticks on third down. A big catch from 49ers tight end George Kittle set up an authoritative finish to the march: Purdy planted a pass to Pearsall for a 30-yard go-route touchdown that beat Barron.
"That's going to happen in games," Purdy said. "You're not going to have a great first half, but you regroup — and then how are you going to finish? I thought we had a good second half of the practice. We faced some adversity as an offense and then bounced back and had some good periods at the end.
"So, I thought it was good for us. 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?”
The 49ers' final response was the most entertaining. Shanahan and Joseph set up a two-minute drive to close practice. Working with limited time, Purdy opened by finding McCaffrey on a slant out of the backfield.
"The minute he goes into a one-on-one situation, I'm drooling over that," Purdy said. "I want that. And we’ve got to capitalize on that."
McCaffrey helps open up other 49ers' weapons, and that happened a couple of plays later, when Purdy connected with veteran receiver Russell Gage to convert a clutch third down. This was even more evidence that the 29-year-old Gage, who hasn't played a game in two seasons after suffering a torn patellar tendon in 2023 training camp, can quietly emerge into a key role for the 49ers — who managed Thursday without receivers Brandon Aiyuk, Jauan Jennings, and Jacob Cowing.
"He put the work in this offseason," Shanahan said of Gage. "I think he's back to being a really good NFL player now."
After a penalty against Denver brought the 49ers to the 15-yard yard line, Purdy aimed for Demarcus Robinson in the end zone. The wideout locked into a battle with Surtain, who knocked the ball away and danced. Hufanga, thrilled with the clutch play against his former team, roared as he greeted Surtain with his traditional customized handshake.
"I did a lot of growing here," Hufanga said after practice. "As a young kid coming in, I graduated early from college and came right in here. I grew as a man. This is where I got married. This is where I had my first kid. A lot of growth happened here. A lot of great memories, a lot of great experiences. Three NFC Championship Games, one Super Bowl.
"Those are memories that you'll take forever. To be back here is special. But I'm exactly where I'm supposed to be."
Practice wasn't over with Surtain's pass breakup, though. The 49ers, down 24-21 on the scoreboard in this final situational drill, still had one more shot at scoring, with about 10 seconds left.
Purdy angled away from the Denver pass rush, buying time to his left. He flipped his hips and fired a strike that led Robinson, moving in the same direction, toward the back pylon for a touchdown.
Center Jake Brendel thrust his arms skyward while Purdy lightly pumped his fist.
"It's good work for us to get some pocket movement, have to step up and rip a 12-yard basic on the backside or check the ball down," Purdy said. "That's real football."
And this was real competition for the 49ers, who'd yearned for a chance to practice against an unfamiliar opponent after two weeks of beating up on each other at training camp.
They certainly got that Thursday, when Denver rolled in ahead of Saturday's preseason game and flexed its vaunted defensive muscles — only to see Purdy and Co. strike back.
"I feel like you can't get enough of those kinds of reps," Purdy said. "For them to come in and give us different looks, face us to face some adversity, have a couple of bad plays — how do you bounce back, how do you finish practice? All those kinds of things are huge things. So, I thought it was a good day overall.”
Training camp notes
• The 49ers defense practiced against Denver's offense on the other side of the field, where The Standard's Tim Kawakami will deliver his full report Friday morning.
Here's one note from that side of the ball: Rookie defensive lineman Mykel Williams left practice with a knee issue, but the 49ers are optimistic about the prognosis for their first-round pick.
“He had a good exam," Shanahan said. "Hopefully just hyperextended his knee. We're going to get a further evaluation now, but it looked good when we examined him."
• Left tackle Trent Williams didn't participate for the 49ers, enjoying part of his day off chatting with former teammate Greenlaw — who also didn't participate in team drills.
• Shanahan said rookie running back Jordan James broke his finger, will have surgery, and will miss "a couple of weeks." James had just returned from missing practice time with a knee issue and will seemingly miss at least the first two preseason games, which are important for evaluation of running backs.
• Young receivers highlighted second-team offensive action for the 49ers. Rookie Jordan Watkins made a couple of catches during team drills. This came after he hauled in the biggest reception of one-on-ones, a deep touchdown against Broncos cornerback Kyrese Rowan.
During team drills, 49ers wideout Terique Owens grabbed a deep corner route from backup QB Mac Jones — who dropped the pass in perfectly about 40 yards beyond the line of scrimmage.
• Jake Moody drilled all seven of his kick attempts during a special teams session Thursday, including a 53-yarder with plenty of distance to spare. The next big test for Moody comes Saturday, when the 49ers take on the Broncos in the preseason opener.
Can Moody deliver under the lights?