INGLEWOOD, Calif. — On a warm Thursday night at SoFi Stadium, the San Francisco 49ers delivered a decisive 41-17 victory over the Los Angeles Chargers in a preseason matchup that showcased emerging talent and veteran depth. The game’s defining moment came late in the second quarter when rookie wide receiver Jacob Cowing fielded a punt at the 49ers’ 17-yard line and sprinted 83 yards to the end zone, weaving through Chargers defenders and giving his team a 17-3 lead just before halftime.

Cowing, a sixth-round draft pick out of Arizona, is battling for one of the final receiver spots on the 49ers’ roster. His punt return, the longest of the preseason so far, demonstrated the speed and elusiveness that caught the coaching staff’s attention during training camp. “I just saw the seam and took off,” Cowing said after the game. “The guys up front did a great job blocking, and I trusted my instincts.”

San Francisco’s offense got a modest but efficient outing from starter Brock Purdy, who played the entire first quarter. The third-year quarterback completed four of six passes for 29 yards, mostly short throws to establish rhythm. Head coach Kyle Shanahan opted to sit Purdy for the rest of the game, handing the reins to backups Mac Jones, Adrian Martinez, and others. Jones struggled with consistency, completing 6 of 13 passes for 89 yards, but Martinez showed flashes of mobility, rushing for a 9-yard touchdown and later connecting with Jordan Watkins for a 17-yard scoring strike in the fourth quarter.

Eddy Pineiro, the 49ers’ kicker competing for the job, nailed field goals from 48 and 45 yards in the second quarter, providing a steady scoring option. Running back Sincere McCormick churned out 53 yards on six carries, including a 7-yard touchdown run, while fourth-string rusher Khalil Herbert punched in a 1-yard score. Notably, star running back Christian McCaffrey was on the field for pregame warmups but did not play. Shanahan downplayed the absence, citing “tightness” and insisting McCaffrey would have practiced if it were the regular season.

The Chargers, by contrast, never found offensive rhythm. Quarterback Justin Herbert played only the opening series, completing a 9-yard pass to tight end Charlie Kolar before the drive stalled. Backup Trey Lance, the former 49ers top draft pick, went 10 of 16 for 73 yards but was unable to move the ball consistently. The Chargers’ offense managed just eight first downs and eight punts, often sabotaged by penalties — seven in total. A bright spot came late in the third quarter when Jerand Bradley snagged a 28-yard touchdown pass from third-string quarterback DJ Uiagalelei, followed by a two-point conversion from Evan Svoboda, cutting the deficit to 20-9. But the 49ers responded quickly, and the Chargers never threatened again.

Defensively, the 49ers were opportunistic. Linebacker Junior Colson intercepted a pass from Adrian Martinez intended for Cowing and returned it 16 yards for a touchdown, though the extra point was missed. The Chargers’ only other score came on a 21-yard field goal by Cameron Dicker.

Injury concerns surfaced for the Chargers as left tackle Branson Taylor left the game in the second quarter with an undisclosed issue and did not return. The 49ers’ top receivers in the contest were rookies De'Zhaun Stribling and KhaDarel Hodge, each with four catches for 46 yards.

Both teams have one preseason game remaining. The 49ers travel to Las Vegas to face the Raiders next Thursday, while the Chargers host the Rams in a SoFi Stadium showdown.