The San Francisco 49ers held their fifth training camp practice on Monday, marking both the first padded session of the summer and the longest practice so far.
Here are some key highlights from the 10:25 a.m. PT practice at the SAP Performance Facility, compiled from multiple media reports.
Noteworthy non-participants
- WR Jacob Cowing (hamstring)
- DT Jordan Elliott (unknown)
- CB Renardo Green (hamstring)
- DE Tarron Jackson (neck)
- WR Jauan Jennings (calf)
DE Nick Bosa, RB Christian McCaffrey, and OT Trent Williams returned to practice after having Sunday off.
Unavailable players
Physically unable to perform (PUP)- WR Brandon Aiyuk (ACL/MCL)
- OL Andre Dillard (ankle)
- DE Yetur Gross-Matos (knee)
- S Malik Mustapha (ACL)
- LB Curtis Robinson (ACL)
Non-football injury (NFI)
- OL Ben Bartch (quad)
- QB Kurtis Rourke (ACL)
Injury updates
DE Tarron Jackson, who suffered a frightening injury during Sunday's practice, has been discharged from Stanford Hospital and is back with the 49ers. Jackson will continue to undergo evaluations as the team monitors his recovery.
WR Jauan Jennings, who left Sunday's practice with a calf injury, did not participate in Monday's session.
Quick notes
Newly signed CB Eli Apple was on the field wearing No. 30.
First look at #49ers new CB Eli Apple 👀 pic.twitter.com/MAfpfzMZ74
— OurSF49ers (@OurSf49ers) July 28, 2025
QB Brock Purdy, who missed Friday's practice but returned Sunday, and his wife Jenna announced the birth of their first child, Millie Joleen Purdy.
RELATED 49ers QB Brock Purdy and wife Jenna welcome first child!
#49ers first padded practice is underway. Here is video Papa Purdy pic.twitter.com/PHWb0rQ7U3
— Cam Inman (@CamInman) July 28, 2025
OL Spencer Burford continues to see reps at tackle.
RB Jordan James appeared to come away with a touchdown on a pass from QB Tanner Mordecai.
With CB Renardo Green sidelined, Tre Brown and Deommodore Lenoir started at outside corner.
CB Dallis Flowers intercepted a pass intended for WR Jordan Watkins during one-on-ones, earning praise from defensive coordinator Robert Saleh and Lenoir, who rushed over to congratulate him.
"He had a really good rep," Saleh said. "Surprised the rest of the DBs didn't jump up and down for him. It was a really nice rep. He had perfect technique, put himself in good position to make a play, and he made it."
Rookie CB Upton Stout broke up a deep pass from Purdy to Ricky Pearsall and worked with the first-team defense in the slot.
LB Dee Winters continues to build his case to start alongside Fred Warner, highlighted by an interception off Purdy on a pass intended for George Kittle, set up by S Jason Pinnock's breakup. Winters also had a big hit on RB Isaac Guerendo.
CB Jakob Robinson had another strong day, adding a pass breakup on a Mordecai throw intended for Russell Gage.
Rookie DE Mykel Williams showed his versatility with reps on the edge and interior, with many noting that he looked like a force in padded drills.
RELATED Robert Saleh praises Mykel Williams, CJ West, other rookies
"He's very powerful. He's got great hands. He's got great leverage," Saleh said. "He has great flexibility to go inside and out. He's unique in that regard, which we knew, which is why we were so excited to go get him."
Saleh added, "Mykel, he's going to be a hell of a football player."
Rookie DT CJ West dominated one-on-ones, beating every offensive lineman he faced, including RG Dominick Puni. He is proving to be a handful for blockers.
Nick Bosa was dominant, recording at least three would-be sacks during team drills. However, LT Trent Williams got the best of Bosa in one-on-one drills.
Quarterback play
Brock Purdy connected early with TE George Kittle, hit WR Ricky Pearsall for a sliding catch, and delivered an impressive strike to WR Russell Gage.
A connection we love to see 🤩 pic.twitter.com/TVqiLdDJVc
— San Francisco 49ers (@49ers) July 28, 2025
While DE Nick Bosa frustrated Purdy for much of the day, the QB had one impressive play, escaping pressure from Bosa, rolling left, and finding FB Kyle Juszczyk for a 15-yards completion amid multiple defenders.
Purdy finished 7-of-13 (per ESPN's Nick Wagoner).
QB Mac Jones completed 12-of-16 passes (per The Athletic's Matt Barrows).
Next practice
The 49ers will hold their next practice on Tuesday, July 29, at 10:25 a.m. PT.
Social media: 49ers practice updates
After not practicing yesterday — #49ers Christian McCaffrey looks ready for the first day of pads 💪 pic.twitter.com/WVSYQRKudG
— ???????????????????????????????????????????? (@TheSFNiners) July 28, 2025
#49ers rookie CB Upton Stout officially the first player out in pads this season 🫡 pic.twitter.com/HbX7rvqHda
— OurSF49ers (@OurSf49ers) July 28, 2025
Papa Purdy ready to jump into day 1 of padded #49ers practice pic.twitter.com/C2QfTBPZPq
— ???????????????????????????????????????????? (@TheSFNiners) July 28, 2025
#49ers QB Brock Purdy gets loose ahead of the first padded practice 🔥 pic.twitter.com/4mKoGBzh9Q
— OurSF49ers (@OurSf49ers) July 28, 2025
#49ers CB Eli Apple is wearing No. 30 pic.twitter.com/bfzWKe8f3M
— ???????????????????????????????????????????? (@TheSFNiners) July 28, 2025
First day of pads 💥 pic.twitter.com/LBMt2qlMio
— San Francisco 49ers (@49ers) July 28, 2025
Dad strength x2 (McCaffrey returns to practice after rest day) pic.twitter.com/oxLzIoQhAL
— Noah Furtado (@_noahfurtado) July 28, 2025
Nick Bosa — Mykel Williams — CJ West — Alfred Collins in pads pic.twitter.com/A1Tap03jKY
— Brad (@Graham_SFN) July 28, 2025
Robert Saleh and Deommodore Lenoir ran over to Dallis Flowers to personally give him praise after the CB locked up Jordan Watkins during an impressive 1-on-1 rep that resulted in an INT.
Flowers has shown flashes early in camp, making his case to be included on the 53-man.
— Noah Furtado (@_noahfurtado) July 28, 2025
Purdy to Kittle, Purdy to Pearsall on a sliding catch, Purdy to Gage, Stout PBU vs. Purdy/Pearsall and Mordecai to Jordan James highlight first portion of 49ers practice.
— Matt Maiocco (@MaioccoNBCS) July 28, 2025
#49ers run defense looking like something serious on first day of live 11-on-11 in pads. McCaffrey stuffed inside and stretched to sideline on back-to-back carries to open second team period.
Real football (at the point of attack) has arrived, folks.
— Noah Furtado (@_noahfurtado) July 28, 2025
The #49ers first padded practice just ended - we got to see OL/DL 1:1 - big takeaway is you can instantly see how twitchy Mykel Williams, how much power CJ West has. Now they have to make the transition to making it work on the field
— Jennifer Lee Chan - also bluesky @jenniferleechan (@jenniferleechan) July 28, 2025
*Best offensive play — Purdy to Kittle, who kept running 70 yrs for TD. Or purdy vs blitz to Robinson
— Cam Inman (@CamInman) July 28, 2025
*Best defensive play — Dee Winters INT on Purdy pass to Kittle that Pinnock PBU
*Rookies Mykel Williams' speed, CJ West's hands impressed in 1v1 vs Oline
*DNP Jordan Elliott
Notes and observations from #49ers practice No. 5:
- Welcome to pads, everyone. It was the first day the team was allowed to be in them and they took advantage with what was easily their longest session in this camp, going for about an hour and 45 minutes.
- Players missing…
— Nick Wagoner (@nwagoner) July 28, 2025