SANTA CLARA, Calif. — Cre’Von LeBlanc kept calling George Kittle, the San Francisco 49ers’ $75 million tight end, “Kittles” in LeBlanc’s postgame Zoom interview.

LeBlanc, a cornerback, was among a number of Eagles defenders who struggled against Kittle; the 49ers’ top weapon returned from an injury to the tune of 15 catches on 15 targets for 183 yards and a touchdown. But the Eagles won the game, 25-20, in no small part because LeBlanc put his helmet on the ball while sacking San Francisco quarterback Nick Mullens in the fourth quarter. Malik Jackson recovered the fumble, and the Eagles had possession for what became the go-ahead touchdown.

“I knew I had to go out there and make a play” after getting beat by Kittle, LeBlanc said. “That play that I made ended up changing the course of the game.”

It was a rare Eagles blitz that actually worked.

“They motioned Kittles on the right side, into a bunch, and I stayed backside. Once I came off the edge, the guard saw me late; I bent the corner on him, smoothed in my shoulder," LeBlanc said. "I saw the quarterback still had the ball in his hand, and realized that I still had time to get there. I just stretched out and made the play.”

No J.J., and Lane Johnson in and out

Wide receiver J.J. Arcega-Whiteside, listed as “doubtful” this weekend with a calf injury, was not active.

Really, there were no surprises after left tackle Jason Peters went on injured reserve Saturday with a toe injury. Well, until the game started, and the Eagles lost right tackle Lane Johnson to an ankle injury, though Johnson eventually returned. It wasn’t clear whether this was the same ankle Johnson underwent a procedure on in August.

Johnson was replaced by rookie Jack Driscoll.

Peters' injury meant the first NFL start for left tackle Jordan Mailata, the Australian project in his third season of trying to learn American football.

Arcega-Whiteside’s absence meant Greg Ward, with all of 10 NFL games to his credit, was the most experienced member of a wide receiving corps that included rookie John Hightower and practice squad call-ups Deontay Burnett and Travis Fulgham. Ward caught four passes for 38 yards in the first half. Fulgham ended up catching the go-ahead touchdown pass.

On a mild, sunny evening at empty Levi’s Stadium, the Eagles dressed just two tight ends, Zach Ertz and Richard Rodgers, after they elected not to activate Hakeem Butler, claimed from the Carolina practice squad last week.

Also inactive were third quarterback Nate Sudfeld, wide receivers DeSean Jackson and Alshon Jeffery, starting cornerback Avonte Maddox, and defensive end Casey Toohill.

Backup offensive linemen Luke Juriga and Jamon Brown were active, as was rookie running back/returner Adrian Killins, who saw brief action in the first half.

While Johnson was out, only center Jason Kelce remained from the offensive line the Eagles envisioned in the offseason.

Lots of Sanders at start

Given their lack of healthy weapons, it wasn’t a surprise that the Eagles tried to ride running back Miles Sanders in the early going. But with the mixed-up, backup offensive line, Sanders didn’t find a lot of room. He had nine carries for 35 yards at halftime. With the 49ers keying on Sanders, however, Carson Wentz had four carries for 24 yards and a touchdown.

Finally, a pick

Rodney McLeod recorded the first turnover of the season for the Eagles defense, intercepting a Nick Mullens pass with 2 minutes, 40 seconds left in the second quarter.

This looked like it might allow the Eagles to expand their lead before halftime, until Jason Kelce snapped the ball past Carson Wentz’s ear on first down from the 49ers' 45. Wentz did a good job beating defenders to the ball, but the play lost 17 yards, and the Eagles don’t have the kind of offense right now that makes up that sort of ground. They held an 8-7 lead at the half.