SANTA CLARA — The 49ers' offense made some plays down the field on Wednesday.
And the defense had its moments, too.
That probably is why 49ers coach Kyle Shanahan seemed particularly pleased at the end of practice when he gathered the team around.
Stay in the game with the latest updates on your beloved Bay Area and California sports teams! Sign up here for our All Access Daily newsletter.
“Helluva a day, man,” Shanahan told the team at the conclusion of a two-hour practice. It was the final day fans were allowed to watch the team during training camp.
Linebacker Fred Warner was added to the injury report with “foot irritation.” He is not expected to miss much time, though he is not expected to suit up for the 49ers’ first preseason game Saturday at the Tennessee Titans.
Here are the takeaways from Wednesday’s practice:
Attrition At Running Back
San Francisco 49ers
Find the latest San Francisco 49ers news, highlights, analysis and more with NBC Sports Bay Area and California.
Jordan Mason is getting a lot of action and making a strong case to open the season as the No. 2 running back behind Christian McCaffrey.
McCaffrey is out for at least a couple of weeks with a left calf strain. Elijah Mitchell has a hamstring injury that will keep him out for at least a week.
In addition, rookie Isaac Guerendo has been sidelined since the first practice with a hamstring injury.
In the past two days, the 49ers signed veteran running backs Matt Breida and Ke’Shawn Vaughn to contracts to help out.
Mason had a very active practice with seven rushing attempts and two pass receptions.
Mason has greatly improved his route-running and pass-catching in order to give the 49ers’ offense more options when he’s on the field.
Odum Picks Off Two More
Veteran special-teams ace George Odum is showing he can be more than a stop-gap at safety for as long as Talanoa Hufanga is out of action.
Odum collected two more interceptions of 49ers starting quarterback Brock Purdy, including one in which he zig-zagged his way into the end zone for a would-be touchdown return.
Odum also had a Purdy-to-Cody Schrader swing pass read perfectly and would have blown up the underfed rookie running back if it were a real game.
Odum is set to enter his seventh NFL season. In 2021, the season before he signed with the 49ers, Odum started seven games with the Indianapolis Colts and registered an interception.
He appears to have solidified his spot as the team’s No. 3 safety when everybody is healthy. Hufanga could get cleared to return to practice next week after he sustained a season-ending ACL injury last season.
Gray, Thomas Battle In Camp
A pair of former third-round draft picks appear to be facing uphill climbs in order to retain their spots on the 49ers’ 53-man roster this season.
This is a huge training camp for both wide receiver Danny Gray and cornerback Ambry Thomas. And, it just so happens, they found themselves going up against each other repeatedly during the 12th practice of camp.
Thomas broke up two deep passes intended for Gray, who ran a 4.33 40-yard dash at the 2022 NFL Scouting Combine.
However, the day ended with Thomas surrendering a 20-yard touchdown pass to Trent Taylor from Josh Dobbs.
Thomas was a third-round pick from Michigan in 2021. He appeared in 42 games with 11 starts in three seasons but repeatedly has been benched in his career.
Thomas faces a major challenge to make the team. He is competing with Renardo Green, Isaac Yiadom, Sam Womack, Darrell Luter and Rock Ya-Sin for a spot behind starters Charvarius Ward and Deommodore Lenoir.
Gray was a third-round draft pick from SMU in 2022. He has just one catch for 9 yards in the 13 games in which he appeared in two seasons.
Gray is battling for a spot as a backup. Deebo Samuel, Jauan Jennings and Ricky Pearsall are guaranteed spots. Jacob Cowing, Trent Taylor, Ronnie Bell and Chris Conley are among those competing for backup spots.
Allen Looking Good For QB2
Quarterback Brandon Allen spent all of last season with the 49ers, while Dobbs had a crazy year. Dobbs spent time with Cleveland, Arizona and Minnesota.
Allen’s comfort in the 49ers’ system has shown this summer.
He made a high-level 40-yard completion to Conley against tight coverage, and showed some scrambling ability to pick up a third down with his legs in a move-the-sticks portion of practice.
Allen also connected with tight end Jake Tonges for a 30-yard pass down the left sideline.
But the competition for the backup job behind Purdy is not just a one-sided situation.
Dobbs finished practice strong.
He completed a 30-yard pass to Tay Martin against the coverage of Sam Womack. On the final snap of practice, Dobbs hit Trent Taylor on a 20-yard touchdown pass.
Honoring Dwight Clark On 8/7
Pro Football Hall of Famers Ronnie Lott, Charles Haley and Bryant Young were among the many 49ers alumni in attendance for Dwight Clark Day, which has taken place every training camp since his 2018 death on Aug. 7 (8/7).
Clark passed away on June 4, 2018, after a two-year fight with ALS.
The 49ers welcomed some ALS patients from the Bay Area, including Sage Peterson of Santa Cruz and his wife, Jaymie Kushi.
Peterson had the following words for 49ers quarterback Brock Purdy through his speech-generating device: “Congratulations on getting married. My wife and I are about to celebrate our one-year anniversary.”
Said Purdy, “Let’s go! Congrats, guys. Let’s go! Thank you. Appreciate it.”
Peterson and Kushi were married on Aug. 13, 2023.
The Golden Heart Fund, which supports former 49ers in need, received a check Wednesday for $232,000 from the Dwight Clark Legacy Series event that was held in San Jose in May.
General manager John Lynch, CEO Jed York and former 49ers tight end Brent Jones, now a board member of the Golden Heart Fund, spoke before the opening of practice.