HENDERSON, Nev. — Arguably, no one got more out of Thursday’s fight-free joint practice than Christian McCaffrey.

No one had a better view than Brock Purdy.

“When he gets to go up and meet one of their linebackers in the ‘A’ gap or Maxx Crosby coming around, that gets him going and he really likes that to compete,” Purdy said. “For me to watch that, it was pretty cool.”

Both Purdy and coach Kyle Shanahan declared after Thursday’s two-hour desert duel that McCaffrey is ready for the season, with three weeks to spare. Thursday’s heavy workload — eight carries, six receptions —  further foreshadowed a bounce-back season from the 49ers’ offensive catalyst.

Added Purdy: “He keeps telling all of us in the locker room, ‘Dude, I can’t wait. I can’t wait.’ For me as a quarterback, I love hearing that. … He’s ready to roll.”

McCaffrey is healthy at a time when all but three defensive starters are not, including Nick Bosa (neck soreness; did not practice) and rookie C.J. West, Thursday’s only known casualty, who sustained a hyperextended knee.

It’s a far cry from a year ago for McCaffrey when he battled Achilles tendinitis. After missing the first two months of the season, he ramped up for a four-game cameo before a knee injury in Buffalo. Getting McCaffrey back means the 49ers might get in the end zone more, and that vision is pushing the offense through a camp that’s otherwise overshadowed by injuries at wide receiver and throughout the defense.

“Physically he looks great, getting in and out of cuts, running hard, back to the McCaffrey that we all know,” Purdy said. “Mentally, he’s just on one. He’s ready to get after it this season, obviously from beginning to end, play a whole season and go hard.”

Shanahan agreed, saying McCaffrey is “as fast as he’s been. He’s as quick, as strong. He’s Christian McCaffrey.”

McCaffrey’s been held out of three practices, plus the opening day’s full-team drills. He seemed to seek out contact on every carry Thursday, and he looked in trademark form on routes, including one he breezed past cornerback Darnay Holmes.

“I’m around Christian a lot, so I talk to him a lot and talk to the trainers a lot. Christian is very neurotic about his body, so he’s on top of all that,” Shanahan said. “Last year was the first training camp he’s missed with us. That definitely isn’t the best way to keep you healthy. But getting hurt in camp is a problem, too. Those are the miserable decisions I have every day.”

On the first play, McCaffrey seized the football and ran to his right behind blocks from Colton McKivitz and George Kittle, both of whom later took pleasure in keeping Raiders’ star Crosby at bay.

It was Kittle’s favorite play of the day: “I’m not the defensive coordinator for the Raiders, but Maxx Crosby in a four-point stance in a six-technique, that takes a lot of pressure off me and McKivitz, where I can run through his outside shoulder and McKivitz can eat it to get up to the second level.”

McCaffrey also excelled in last Thursday’s joint practice against the Denver Broncos. He didn’t talk after this one — Purdy, George Kittle, and Fred Warner took reps at the mic in the Raiders’ indoor facility — but he did stroll through with his pads off like a blue-collar worker who just completed his shift.

BOSA, WEST INJURIES

Bosa did not practice for the fifth time in two weeks, Shanahan citing neck soreness, but that he likely would return next week.

West sustained what’s initially diagnosed as a hyperextended knee, similar to what defensive end and first-round pick Mykel Williams experienced in last Thursday’s joint practice with the Broncos.

Kalia Davis and Evan Anderson were the only defensive linemen participating Thursday who’ve played in the 49ers’ system. Out are Bosa, Williams, Robert Beal (groin), Sam Okuayinonu (knee), Jordan Elliott (back), and Kevin Givens (pectoral). William Bradley-King and Demone Harris were signed as reinforcements, defensive tackle Michael Dwumfour was waived, and Bradlee Anae went on Injured Reserve.

Injuries are also keeping defensive backs sidelined, including cornerbacks Renardo Green (hamstring), Upton Stout (calf), and Tre Brown (heel); and safeties Jason Pinnock (heel) and Richie Grant (knee).

OFFENSIVE LINE DEPTH

Andre Dillard went on season-ending Injured Reserve before practice, only three days after he came off the Physically Unable to Perform list. Dillard’s troubles trace to offseason ankle surgery. He was competing for a backup tackle role with Spencer Burford and Austen Pleasants. “We’re always looking outside but if there’s a lot of guys outside, they wouldn’t be outside, they’d be somewhere,” Shanahan said. “Would have been nice to have him.

With Ben Bartch sidelined at least the next week by an elbow-ligament injury, the 49ers plugged Nick Zakelj back in at left guard for the most reps, but rookie Connor Colby has been getting some, too, much to the delight of Kittle, a fellow Iowa product. “He’s improved a lot here the past couple of weeks,” Shanahan said. “I know he got a high PFF grade, so you guys are on top of him. It wasn’t too off.”

RAIDER APOLOGIZES TO PURDY

Defensive end Tyree Wilson got into the 49ers’ backfield a couple of times and once rolled into Purdy’s ankle. Purdy shrugged it off, saying, “That’s the game. There are going to be guys getting thrown down, rolled up into our ankles. How can I still get the throw off, how can I extend (the play)? Whatever. It’s part of the game. He came up to me and apologized after, and I was like, ‘Dude, thanks for competing, bro. You’re making us better.’ ”

EXTRA POINTS

The temperature rose from 93 to 97 degrees during the two-hour practice, but an 8 to 11 mph breeze helped cool everyone, including a couple hundred fans sitting in stands around all three practice fields. … Defensive highlights included a Chase Lucas interception and a Dallis Flowers pass breakup in the end zone. … Defensive end Jaylon Allen did not retaliate when a Raiders lineman took a swing at him near the end of practice, exemplifying Shanahan’s orders to show restraint. … Left tackle Trent Williams warmed up with the offense but did not participate in team drills. He and Raiders coach Pete Carroll intervened to keep a couple of dustups from turning into fights, including on special teams. … McKivitz came away pleased after facing Crosby six to eight times, though Crosby did pressure Purdy into a throw-away. … Purdy was not intercepted but cornerback Eric Stokes dropped a potential theft early in team drills. … No one-on-one drills were held between the linemen, a reflection of the 49ers’ defensive injuries. … Kyle Juszczyk made a 40-yard catch down the right sideline in a move-the-ball period for a would-be touchdown. … Jake Moody made his only field-goal attempt, from roughly 50 yards. … Raiders owner Mark Davis watched from atop a field-side balcony; minority owner Tom Brady was not in attendance.

Originally Published: August 14, 2025 at 8:15 AM PDT