Quarterback Brock Purdy and veteran wide receiver Mike Evans figure to get quite familiar with each other through training camp and heading into the regular season.

Those two gave an early preview of what might be expected this year, as they hooked up on a couple of pass completions. The top play was a deep pass down the left sideline in which Evans was matched against cornerback Deommodore Lenoir. Safety Marques Sigle was a split-second late, as Evans made the reception.

Defensive play of the day

Linebackers Garret Wallow and Jalen Graham teamed up for the most-notable defensive play of the day for an interception of backup quarterback Mac Jones.

Jones looked to fit a throw into Jordan Watkins over the middle, but Wallow made a leaping deflection of the pass. The ball was deflected again before hitting the ground, and Graham finally gathered it in and returned it back the other way.

Competition to watch

Connor Colby appears to be in the lead in the competition for the starting job at left guard. Now, all he has to do is give the 49ers no reason to try anyone else in that spot.

Colby and veteran pickup Robert Jones separated themselves during the offseason program, Foerster said. Colby, who started six games for the 49ers last season, is playing with a lot more confidence and decisiveness, Williams said.

This ’n’ that

—Linebacker Dre Greenlaw was back on the practice field with the 49ers after re-signing with the team as a free agent after one season in Denver.

Warner said he has been trying to advise Greenlaw not to get too amped up for the beginning of training camp.

“It’s great having him back,” Warner said. “He is one of the best football players I’ve ever played with.”

–Veteran receiver Christian Kirk appeared to leave the practice field with an athletic trainer midway through practice. There was no immediate word on his condition.

–Veteran offensive tackle Vederian Lowe, whom the 49ers signed as a free agent, sustained an apparent ankle injury on his third snap as the backup left tackle. He did not return to practice. Foerster had no update on his status. Rookie Enrique Cruz took over for Lowe and saw significant practice time.

—Jones threw two interceptions on the day. Sigle came up with the other interception, as there was no receiver in the vicinity. After the play, Jones and receiver Ricky Pearsall had a discussion about the apparent miscommunication.

—Rookie receiver De’Zhaun Stribling, the No. 33 pick in the 2026 NFL Draft, caught two passes from Jones. 

—Edge Romello Height, a third-round draft pick, dropped into coverage on one of his first snaps and gave up a completion to Christian McCaffrey on one of the more-difficult tasks any defensive player can be assigned.

—Second-year running back Jordan James got a lot of reps and caught two passes in 11-on-11 work. Both of his receptions came from Purdy.

—Veteran cornerback Jack Jones had good coverage on Jones’ deep incompletion intended for Pearsall. Later, safety Malik Mustapha broke up a deep ball from Purdy for Pearsall. On the day, Pearsall caught two passes during team drills.

—Defensive tackle Kevin Givens re-signed with the 49ers on Sunday. He spent his first seven seasons with San Francisco. He took the roster spot that opened when the team waived defensive tackle Evan Anderson.

—The 49ers announced the following coaches will take part in the Bill Walsh Diversity Fellowship this summer: Matt Bechtel (offensive line), Kyan Brumfield (wide receivers), Malik McMorris (linebackers), Joseph Stone III (strength and conditioning) and Teivis Tuioti (defensive line).