Christian McCaffrey insisted all week that facing the Carolina Panthers — the franchise that traded him away three years ago — wouldn’t add any extra motivation. But under the Monday night lights, the 49ers star delivered the kind of performance that has become routine since his arrival in San Francisco, carrying his team to a 20–9 victory in Charlotte.
McCaffrey piled up 142 yards from scrimmage and scored a key second-half touchdown, providing stability for a San Francisco offense shaken early by three Brock Purdy interceptions. His steady production powered the 49ers (8–4) to a much-needed win that keeps them firmly in the NFC playoff picture as the season enters its final stretch.
In his second start since returning from a toe injury, Purdy endured one of the roughest halves of his young career. He became the first player this season to throw three interceptions in the first half, including two to Carolina cornerback Jaycee Horn. Purdy insisted afterward that neither the injury nor rust played a role.
The 49ers adjusted accordingly. Kyle Shanahan shifted the offense into a conservative gear, leaning heavily on McCaffrey’s legs, quick passes, and clock control. The approach worked.
McCaffrey capped an early third-quarter drive with a 12-yard rushing touchdown, pushing the San Francisco lead to 17–3 before Matt Gay added a field goal to make it 20–3.
McCaffrey finished with 89 rushing yards and 53 receiving yards, securing his 10th 100-yard game of the season, just two shy of the franchise record he set a year ago.
A week after Bryce Young set a franchise record with 448 passing yards in a win over Atlanta, the Panthers (6–6) found none of that efficiency. Young threw for only 169 yards, with one touchdown and one interception, as Carolina repeatedly failed to convert San Francisco turnovers into meaningful points.
Horn’s two interceptions — and Carolina’s three picks overall — resulted in just three points.
Young’s lone highlight came in the fourth quarter, when he hit rookie Tetairoa McMillan on a 29-yard touchdown strike. But after a penalty moved the ensuing 2-point attempt to the 1-yard line, Carolina failed to convert. Young later threw his second interception, again to safety Ji’Ayir Brown, with the Panthers trailing 20–9 and driving into scoring position.
What could have been a comeback opportunity instead became the final turning point.
Frustration boiled over in the final minutes. Carolina safety Tre’Von Moehrig struck Jauan Jennings in the groin after a run play, and Jennings responded with a punch to Moehrig’s helmet as players left the field following the game.
Officials quickly separated the players, but the exchange underscored the emotions of a night Carolina let slip away.
San Francisco opened the game with its most impressive scripted drive of the season. The 49ers gave McCaffrey the ball on the first five plays, establishing a physical tone before Purdy hit Jennings for a 12-yard touchdown, marking the first opening-drive TD scored against Carolina all season.
But both offenses sputtered afterward. Brown intercepted Young at the 1-yard line on a disastrous first-down throw, killing a prime Carolina scoring chance. The teams swapped field goals before the half, with San Francisco taking a 10–3 lead into the locker room.
From there, the 49ers leaned on their star running back and a defense that tightened at every key moment.
Panthers: Host the Los Angeles Rams on Sunday in a pivotal NFC matchup as they try to regain control of the NFC South race.
49ers: Travel to Cleveland for a showdown with the Browns, who boast one of the league’s toughest defenses.
San Francisco didn’t need fireworks to win this one — just Christian McCaffrey doing what he always seems to do, even on a night filled with old emotions.





































