The San Francisco 49ers held their fourth training camp practice on Sunday, the final session before players transition to padded workouts.
Here are some key highlights from the 10:25 a.m. PT practice at the SAP Performance Facility, compiled from multiple media reports.
Physically unable to perform (PUP)
Non-football injury (NFI)
CB Renardo Green did not practice. Head coach Kyle Shanahan confirmed that he suffered a hamstring injury during Friday's session. The good news is that Green—along with wide receiver Jacob Cowing (hamstring)—is expected to return ahead of the 49ers' second preseason game against the Las Vegas Raiders.
DE Tarron Jackson went down during team drills and was carted off the field on a backboard. Shanahan noted that Jackson was conscious and appeared able to move. He was transported to Stanford Hospital for further evaluation and treatment.
"We were close to him, so we could hear him talking," Shanahan said. "We could see everything moving. So, I just told the guys that, which I think eases them up a little bit for the biggest fears."
WR Jauan Jennings also exited practice with what appeared to be a calf injury, an issue he previously dealt with toward the end of the offseason program.
QB Brock Purdy returned to practice after being excused on Friday for personal reasons.
"Yeah, Brock had some family stuff yesterday—all good news," Shanahan said. "... But yeah, Brock was back and didn't miss a beat, and it was a good day off for him."
The 49ers activated WR Ricky Pearsall from the active/physically unable to perform (PUP) list, allowing the second-year receiver to participate in Sunday's session. Pearsall, who had been sidelined with a hamstring injury, impressed early by hauling in a Purdy touchdown pass during red zone drills, finishing with three catches.
"It was nice [having Pearsall back]," Shanahan said. "His rep count was really low. I think he got like eight reps today, but we'll see how he did with recovery and stuff. But I didn't hear any complaints, and good first day back."
Pearsall also rotated as a punt returner alongside rookie WRs Jordan Watkins and Junior Bergen.
OL Spencer Burford received first-team reps at left tackle with Trent Williams getting the day off. Burford appears to be in the running for the swing tackle role following Jaylon Moore's departure in free agency.
With Green sidelined, CBs Tre Brown and Dallis Flowers saw increased work on the outside. Brown shifted inside to nickel when Flowers was on the field, while rookie Upton Stout also saw time in the slot. Flowers broke up a pass from QB Mac Jones, while DE Bryce Huff and rookie LB Nick Martin provided pressure.
Bleacher Report recently named CB Jakob Robinson the undrafted free agent with the best chance to make the 49ers roster. He made a strong case, breaking up a red-zone pass intended for Pearsall.
Legendary coach Mike Shanahan, father of Kyle Shanahan, attended practice.
"I grew up going to training camp, loving football, and not realizing until you grow up that it gave you a chance to hang around your dad a lot," Kyle said. "And it's cool that he can come here do this and still get to hang around me and my son a little bit. He enjoys it, so it's nice to have him here."
Brock Purdy completed 8-of-11 passes, missing on a deep throw to WR Equanimeous St. Brown.
Mac Jones went 6-of-8, connecting on red zone touchdowns to RB Isaac Guerendo and WR Russell Gage. However, Shanahan expressed frustration when the Jones-led offense failed to get a play called in the huddle, resulting in the coach pulling them off the field.
Tanner Mordecai connected on a deep pass to rookie RB Corey Kiner but had two passes broken up—one intended for Kiner and the other for St. Brown.
Veteran Greg Joseph, who signed this offseason to challenge Jake Moody, went a perfect 4-for-4 on field goal attempts from 30, 34, 40, and 54 yards. Moody connected on 3-of-4 kicks, missing his lone attempt from 54 yards.
The 49ers will hold their first padded practice on Monday, July 28, at 10:25 a.m. PT, marking an important step in training camp evaluations.
#49ers Brock Purdy back in action pic.twitter.com/PY2uwoLxdY— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2025
Slick Rick @S1ickSzn | #FTTB pic.twitter.com/fRqpEm8n6E— San Francisco 49ers (@49ers) July 27, 2025
WR Ricky Pearsall is indeed at Day 4 of training camp. #49ers pic.twitter.com/8p4CsCq8qy— Tracy Sandler (@TracyFGSN) July 27, 2025
Pearsall warming up… https://t.co/m4PnhW7o8Z pic.twitter.com/BQtwneTVxk— Nick Wagoner (@nwagoner) July 27, 2025
#49ers Ricky Pearsall rocking UNO 1?? pic.twitter.com/E8NGqsVFv7— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2025
Appears to be a rest day coming out of the day off for OT Trent Williams, RB Christian McCaffrey and DE Nick Bosa.— Nick Wagoner (@nwagoner) July 27, 2025
#49ers LG Ben Bartch off to the side field as he continues to recover from a quad injury pic.twitter.com/HFQpVzNbUM— OurSF49ers (@OurSf49ers) July 27, 2025
#49ers WR Ricky Pearsall making his training-camp debut after missing the first three sessions with a hamstring injury. pic.twitter.com/wjnZea2oVB— Eric Branch (@Eric_Branch) July 27, 2025
#49ers Christian McCaffrey getting the day off before padsSmart move pic.twitter.com/IvP4OeYMXj
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2025
#49ers Ricky Pearsall snags his first catch of team drills and comes down with a TD from Brock Purdy during red zone period.— OurSF49ers (@OurSf49ers) July 27, 2025
#49ers kicking competition is heating up. Greg Joseph was a perfect 4 of 4 today from 30, 34, 40 and 54 yards, the last of which looked good from 60. Jake Moody went 3 of 4, missing slightly left on 54-yarder.— Noah Furtado (@_noahfurtado) July 27, 2025
The #49ers appear to be trying out multiple DBs todayImportant to note that Renardo Green was not on hand for today's practice pic.twitter.com/a7BIZ5VME3
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2025
Notes and observations from #49ers practice No. 4:- The final non-padded session for the Niners was around 80 minutes with about a seven minute stoppage in the middle to tend to injured DE Tarron Jackson. Jackson was on the ground for about 6 minutes being tended to by…
— Nick Wagoner (@nwagoner) July 27, 2025
More from 49ers Webzone:
More must-reads:
Get the latest news and rumors, customized to your favorite sports and teams. Emailed daily. Always free!