
By Matt Barrows, Vic Tafur, Joe Person and Alex Valdes
Brock Purdy struggled, but Christian McCaffrey didn’t. The do-it-all running back topped 100 yards from scrimmage for the 10th time this season to lead the San Francisco 49ers to a 20-9 victory over the Carolina Panthers at Levi’s Stadium on Monday night.
McCaffrey’s 89 yards rushing and 53 yards receiving helped the 49ers compensate for Purdy’s three interceptions as San Francisco (8-4) kept pace in the tough NFC West.
The Carolina Panthers (6-6) squandered a chance to take the NFC South lead over Tampa Bay (6-5), as Bryce Young threw two interceptions, both picked off by 49ers safety Ji’Ayir Brown.
The game plan, well before Purdy threw three interceptions in the first half, was to ride McCaffrey against his former team. The first five plays went to McCaffrey, and he finished with 31 touches on the day. McCaffrey ran 24 times for 89 yards and a touchdown, and he caught seven passes for 53 yards.
Before the game, McCaffrey said he hadn’t circled the matchup against the Panthers team that traded him to the 49ers in 2022. But he seemed a little extra excited after his 12-yard touchdown run in the third quarter, a play in which he was barely touched as Trent Williams and Jake Brendel cleared the left side. McCaffrey leads the NFL in yards from scrimmage with 1,581. — Vic Tafur, 49ers senior writer
Purdy, who saw two bad passes get dropped by Arizona Cardinals defenders last week, wasn’t nearly as lucky in the first half Monday. Three Purdy passes — the first to Jauan Jennings, the next two to Ricky Pearsall — were snapped up by Panthers defensive backs for interceptions. The second was perhaps the most egregious since Purdy, facing third-and-6 in Panthers territory, had plenty of room to run and pick up the first down. Instead, he saw Pearsall flashing at the goal line but didn’t throw it deep enough or lead Pearsall away from the defender. Instead, cornerback Mike Jackson caught up with the play and made the interception.
“The ball is going to the right spot,” 49ers coach Kyle Shanahan told ESPN’s sideline reporter at halftime. “He just left it a little behind them, and one threw a little bit late. He just has to throw it on time. He’ll make the corrections. He’ll make the throws.”
Purdy’s passer rating, 133.5 against Arizona, was 48.4 at the half, though he lifted it to 58.5 with short attempts in the second half. He has only one game in which he’s thrown more interceptions: a Christmas night loss to the Baltimore Ravens in 2023, when he threw four. — Matt Barrows, 49ers senior writer
Brown and Malik Mustapha might have had their best outings since they became the 49ers’ starting safety duo in Week 8. Mustapha was full of energy early, charging in from the deep safety position to jolt Rico Dowdle on the Panthers’ opening drive. Mustapha also had a big third-down hit inside the 10 later in the first half, one that forced Carolina to settle for a field goal.
Brown, meanwhile, thwarted another Panthers touchdown early on when he grabbed an ill-advised Young pass in the back of the end zone. Brown got Young again in the fourth quarter, when he fought through contact with Panthers receiver Tetairoa McMillan for an interception that essentially sealed the game. Mustapha led the 49ers with seven tackles; Brown was third with five. — Barrows
So much for that high-flying Panthers’ passing offense. A week after Young broke Cam Newton’s single-game franchise record with 448 passing yards in a win at the Atlanta Falcons, the third-year QB couldn’t get anything going downfield. Young’s 29-yard TD pass to McMillan was the Panthers’ only explosive one of the game. Worse, Young threw a pair of interceptions, including a momentum-killing pick in the end zone when the Panthers had first-and-goal at the 1 on their first offensive possession. Young was 18-of-29 passing for 169 yards and a 60.8 passer rating. — Joe Person, Panthers senior writer
The Panthers’ already banged-up defense tried to keep the game close in the first half before wearing down in the second. With the 49ers holding a 15-minute edge in time of possession, the Panthers lost the war of attrition. Cornerback Jaycee Horn, who tied his career high with two interceptions in the first half, didn’t play a snap in the second half and was ruled out with a concussion.
Corey Thornton, Horn’s replacement, left with an ankle injury in the third quarter and did not return. That meant the Panthers were down to their fourth CB (Chau Smith-Wade) and fourth and fifth linebackers. Carolina already was without both starting LBs, then saw Claudin Cherelus exit in the first half with a concussion. They’d better get healthy in a hurry: The Los Angeles Rams (9-2) visit Charlotte on Sunday. — Person






