SANTA CLARA – Quarterback Jimmy Garoppolo’s first padded practice featured a perfectly thrown deep ball early in practice and, later, a sprint up the middle on a scramble.

Coach Kyle Shanahan liked what he saw on both plays.

Garoppolo sustained a torn ACL in his left knee last season in Week 4 against Kansas City when he ill-advisedly decided to cut back at the sideline on a scramble. But the play in practice Monday was a lot different, and Shanahan said he hopes Garoppolo has more of those opportunities in the regular season.

“I loved what I saw today,” Shanahan said. “No one was open and the sea parted.”

Garoppolo ran for 15 yards and then gave himself up for what would have been a slide – something Shanahan said he expects his quarterback to do more often this season -- rather than try to pick up an extra yard or 2.

The 49ers’ offense looked better on Monday after getting stymied for most of the first two days of non-padded practices.

“I thought they took a little bit of a step forward today, but nothing to get real excited about,” Shanahan said. “It’s a long camp, and I want these guys to keep getting better. It’s nice to have the pads out today and get a little more physical.”

QB Jimmy Garoppolo throwing on the first day #49ers are in pads in training camp. pic.twitter.com/iZ2fz5yPad — Matt Maiocco (@MaioccoNBCS) July 29, 2019

Garoppolo’s best throw of the day came on his first pass attempt, hitting receiver Richie James (see below, offensive play of the day).

Garoppolo completed eight of 14 passes, while Nick Mullens connected on all four of his pass attempts. C.J. Beathard completed two of three attempts with one interception.

Offensive Play of the Day

On the second play of 11-on-11 work, Garoppolo used a play fake, buying him some time, and delivered a perfectly thrown pass that carried more than 60 yards in the air to James. The play would have gone for a 70-yard touchdown against the coverage of free safety Adrian Colbert.

“We run that play a lot, but we got it against the right coverage today,” Shanahan said. “He made the right read, which is where it starts. We had the right pocket, so he had time to see it, and then you got to throw it right, and he did throw it right.

“It was a hell of a play.”

Defensive Plays of the Day

Second-year cornerback Emmanuel Moseley made a couple of nice plays on the same snap on the final play of practice. He had tight coverage against Kendrick Bourne at the right sideline and deflected C.J. Beathard’s pass. Then, Moseley remained with the tipped ball, and made a diving interception to complete the play.

Shanahan's teaching moment with Hurd

Rookie wide receiver Jalen Hurd made quite an impact in practice Sunday. He was involved in two fights – one with Dontae Johnson, one with Antone Exum.

Upon further review, Shanahan saw the good and the bad of Hurd’s actions and used it as a teaching moment for the entire team during a Monday morning meeting.

Shanahan explained:

“The beginning part, I was proud of how Jalen handled himself. That’s why we brought him here. We want him to be physical. We want him to irritate the heck out of every player in that secondary. And I hope he pisses people off, and I hope a lot of people throw punches at him, and that’s what happened.

“Someone took a shot at him, and that’s where I got upset with Jalen, because he’s going to piss a lot of people off and I hope a lot of guys take shots at him, I hope he sits there with his helmet on and waves at them as they get ejected and gets us a free 15 yards. But he failed in that yesterday . . . he got fought back.”

Injury report

Guard Joshua Garnett did not practice after sustaining a dislocated ring finger on his right hand in practices Saturday and Sunday. He was expected to get a further evaluation from a team doctor on Monday.

Running back Jerick McKinnon (knee) remains on the physically-unable-to-perform list but should be activated soon, Shanahan said. The 49ers have a day off on Wednesday, making Thursday a possibility. When McKinnon is removed from the PUP list, he will be able to take part in walk-throughs before practice.

This ‘n’ That

Left tackle Joe Staley was given a veteran day off. But he still was on the practice field and was seen working with rookie defensive end Nick Bosa on some run-related techniques. Bosa was seen getting bulldozed by left tackle Shon Coleman on one run play, but he said he had already tagged running back Tevin Coleman to get the would-be tackle before Coleman continued blocking him down the field. Bosa said he was not shaken up, though it was the final play on which he appeared during the day of work. . . .

Cornerback Jason Verrett, who wore No. 34 in the first two practices, was issued No. 2 for practice on Monday. No. 34 is not available for games because it was retired for Hall of Fame running back Joe “The Jet” Perry. . . .

Defensive linemen DeForest Buckner, Kevin Givens, Kapron Lewis-Moore applied pressure on the quarterbacks. Buckner leveled Tevin Coleman on a running play. . .

Slot receiver Trent Taylor caught a team-best three passes in 11-on-11 drills, while Bourne and Marquise Goodwin had two catches apiece. . . .

Receiver Dante Pettis got behind linebacker Fred Warner but dropped a deep pass from Garoppolo. . . .

[RELATED: Marquise Goodwin embracing role of veteran leader for 49ers receivers]

During one-on-one pass coverage drills, Ahkello Witherspoon recorded an interception against Hurd, and Moseley recorded multiple pass breakups.

Next up

The 49ers return to practice Tuesday at 10 a.m. in Santa Clara for their second day in full pads and their fourth practice since the opening of training camp.