JUMP TO:
The San Francisco 49ers' hard-fought victory over the Carolina Panthers was ultimately secured by the dual-threat heroics of running back Christian McCaffrey and a magnificent performance from Robert Saleh’s defensive unit.
Providing the necessary offensive spark and consistency, McCaffrey faced his former club for the first time on primetime and found the end zone with a powerful touchdown run in the second half, his score giving the 49ers a much-needed two-score lead. CMC was his usual dual-threat self, compiling 142 scrimmage yards by splitting carries and serving as Brock Purdy’s most reliable target in the short passing game. McCaffrey tied an NFL record for the most games with at least 50 rushing yards and 50 receiving yards in a single season.
The true star of the evening was San Francisco’s defense, a relentless unit marshaled by defensive coordinator Robert Saleh. From the critical red-zone interception of Bryce Young, to repeated stops that forced three-and-outs, the defense played lights out while the offense struggled They held the Panthers to less than 100 yards of offense through the first half and denied Carolina any sustainable rhythm, consistently putting the offense in unfavorable down-and-distance situations and forcing punts after quick exchanges.
The 49ers’ night was nearly derailed by a first-half turnover fest, as quarterback Brock Purdy was intercepted three times, allowing the Panthers’ defense to keep the game within reach. Cornerbacks Jaycee Horn and Mike Jackson capitalized on the miscues, with Horn snatching two picks, mostly on throws targeted deep down the field. Despite the signal-caller’s struggles, which threatened to hand momentum entirely to the home team, the Panthers’ offense only managed to convert those three crucial takeaways into a single field goal.
The victory moves the 49ers to an 8-4 record and significantly bolsters their standing in the crowded NFC playoff picture. Remaining firm in the Wild Card race, the win increases their separation from the six-win tier of teams and maintains pressure on the NFC West leaders, the Los Angeles Rams and Seattle Seahawks, who also secured wins this week.
AllSportsPeople followed all the action from tonight's game at the site of Super Bowl LX. Check out all the action below.
WATCH: Stream 49ers vs. Panthers via the new ESPN app
49ers vs. Panthers score
NFL HQ: Live NFL scores | Updated NFL standings | Full NFL schedule
Who won 'Monday Night Football' last night?
Final: 49ers 20, Panthers 9
10:58 p.m.: The 49ers kneel, and this game is over.
In a game headlined by Christian McCaffrey's return, the running back lights it up in a 20-9 win. But, he's not the only storyline, with Robert Saleh's defense stifling the Panthers throughout the night.
The 49ers move to 8-4 on the season while the Panthers fall to 6-6.
10:48 p.m.: The San Francisco defense has been the story of the game, and it might have iced it here after Carolina comes up empty.
Fitzgerald misses a 57-yard field goal and the 49ers take back over, up 20-9.
10:45 p.m.: Needing to move the ball, Young hits Xavier Legette on the right sideline for a first down. This one goes for 14 yards down to the San Francisco 41.
10:41 p.m.: The 49ers are unable to move the ball and take a significant amount of time off the clock. Young and the Panthers will take over with 4:44 remaining.
10:37 p.m.: Young throws his second interception of the night, and it's Brown again.
The 49ers defender jumps a pass targeted for McMillan, and the 49ers take back over.
Ji'Ayir Brown intercepts Bryce Young for the 2nd time tonight!
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/pDxeZF8btf
Both Horn and Brown have two interceptions tonight for their respective teams, as the San Francisco offense comes back on the field with 6:27 remaining.
10:35 p.m.: Down 11, the Panthers are driving. Young hits Jalen Coker for 10 yards to get down to the 35.
49ers 20, Panthers 9
10:28 p.m.: On third down, Shanahan opts to keep the ball on the ground, setting up a short field goal for Gay.
The kicker drills a 29-yarder to make it a two-score game again, 20-9.
10:26 p.m.: The 49ers are driving, looking to put the game out of reach.
San Francisco has a 1st & 10 inside the red zone after a Purdy run for a first down.
10:23 p.m.: McCaffrey opens up the drive the same way he finished the last one, with a big run.
The back takes it 17 yards to the Carolina 45.
End of the third quarter: 49ers 17, Panthers 9
10:21 p.m.: At the end of three, San Francisco leads by one score. The Panthers just responded after the 49ers made it a 14 point game, and we have a one-score affair going to the final frame.
49ers 17, Panthers 9
10:15 p.m. TOUCHDOWN: Carolina finds paydirt for the first time tonight.
After driving into the red zone, Young finds McMillan for a 29-yard score.
Great throw from Young to T-Mac and the @Panthers are back in it 🙌
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/Z1kJAaEbDT
It's the third time the two have connected in the past two games. The Panthers do not convert on the two-point play, but they make the game 17-9.
10:12 p.m.: Carolina has two first downs on the drive, both coming on passes from Young to Hubbard.
This one goes for 10 yards to the San Francisco 40.
49ers 17, Panthers 3
10:06 p.m. TOUCHDOWN: McCaffrey finds the end zone against his former team.
From 12 yards out, the running back takes a halfback toss to the left and finds space and runs into the end zone. It's his seventh touchdown of the season, and the 49ers score on their first drive of the second half.
CMC with beautiful blocking ahead for a TD against his former team!
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/hKrOeso21z
San Francisco leads 17-3.
10:02 p.m.: Facing a 3rd & 6, Purdy keeps the chains moving, hitting Jennings right by the sticks and No. 15 takes it for a first down.
It goes for 10 yards and the 49ers are in the red zone.
9:56 p.m.: Kittle has put together a strong game tonight, and he's up to five receptions for 59 yards. A McCaffrey run after two Kittle receptions gives the 49ers a first down in Panthers territory.
9:53 p.m.: The 49ers first play goes for a first down, with McCaffrey taking a screen pass 12 yards to the San Francisco 32.
9:49 p.m.: On 3rd & 7, Young tries targeting McMillan but it comes up incomplete.
San Francisco takes over at its own 20 after the Carolina punt.
9:44 p.m.: Dowdle opens up the second half in a big way, taking a halfback toss 17 yards for a first down.
9:43 p.m.: San Francisco has kicked off and the second half is underway.
Bryce Young and the Panthers, who had three points in the first half, take the field.
Halftime: 49ers 10, Panthers 3
9:26 p.m.: At halftime, San Francisco leads 10-3. The 49ers are outgaining the Panthers 180-72, a lot of those yards coming on the first drive, when the only touchdown of the game was scored.
McCaffrey has 83 scrimmage yards against his former team. The Panthers will get the ball to begin the second half.
9:24 p.m.: Carolina can't do anything before the half, going three-and-out and punting in its own territory.
On third down, Young was called for intentional grounding, as he was aiming for McMillan but threw it in the wrong area. The quarterback is 6-for-10 for 28 yards and an interception.
San Francisco takes back over with 17 seconds remaining.
49ers 10, Panthers 3
9:19 p.m.: Though they were able to drive into opponent territory, San Francisco comes away with only a field goal.
Matt Gay nails a 47-yard field goal and the 49ers make the lead a touchdown again.
9:17 p.m.: Purdy and the 49ers move the chains, with Kittle reeling in a pass in the seam for a 25-yard gain.
9:13 p.m.: At the two-minute warning, it's San Francisco who leads 7-3.
There have been four turnovers in the game, three being Purdy interceptions. But, the San Francisco defense has been the main story of the game so far, keeping Carolina out of the end zone multiple times when set up in good territory.
49ers 7, Panthers 3
9:08 p.m. FIELD GOAL: On 3rd & goal, Young hits Chuba Hubbard behind the line of scrimmage, and he's immediately swallowed up for a three-yard loss.
The Panthers get on the board, but only for three, as Ryan Fitzgerald hits a 25-yarder.
Carolina cuts the deficit to four.
9:04 p.m.: Purdy has thrown his third interception of the first half. It once again goes to Horn, who grabs his second interception of the game near midfield and it's returned to the 49ers 33.
JAYCEE HORN AGAIN! 3RD PANTHERS INT.
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/uDwhX4pu24
Young and the Panthers could not capitalize on the first two turnovers. They have another prime chance here.
9:03 p.m.: This game has been sloppy, and once again McCaffrey fumbles to open the drive. But, the ball jumps forward and it's recovered by San Francisco 12 yards ahead of the line of scrimmage.
8:59 p.m.: McMillan is coming off a huge game, but here, he has a critical drop on third down.
The Panthers go three-and-out after the turnover, and the 49ers take over at their 17.
8:54 p.m.: Three drives, three interceptions.
After San Francisco drove into Carolina territory, Purdy lobs one up to Pearsall in the end zone. But, Mike Jackson goes up and intercepts it, and Carolina takes back over.
Panthers pick off Brock Purdy for the 2nd time tonight! This time by Mike Jackson.
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/PL77DcUlxQ
8:51 p.m.: On second down, Purdy evades pressure and scrambles for a first down. It goes for nine yards down to the Carolina 32.
8:47 p.m.: To open up the second quarter, Purdy connects with George Kittle, who takes it 11 yards to the San Francisco 44.
End of the first quarter: 49ers 7, Panthers 0
8:44 p.m.: At the end of one, San Francisco has a 7-0 lead. While the Panthers had a chance to tie the game, a critical Young turnover kept the game at 7-0.
McCaffrey had 11 touches in the first quarter.
8:40 p.m.: Carolina was only a few yards away from a statement score, but Young throws an interception in the red zone.
Ji'Ayir Brown takes it right back for San Francisco!
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/980nPRdSdm
Ji'Ayir Brown gnabs a throw in the back of the end zone and after the Purdy turnover, the 49ers defense gets one right back.
8:39 p.m.: Facing a 3rd & 2, Young rolls out and scrambles for a first down. Carolina is on the San Francisco two.
8:37 p.m.: The Panthers defense has come up with many big takeaways this season, and it gets one here.
On first down, Purdy's pass is intercepted by superstar corner Jaycee Horn, and just like that, the Panthers are in the red zone.
Jaycee Horn will take that!
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/3Mz7VaPMM3
8:33 p.m.: The Panthers gained 10 yards on third down, but opt to punt on a 4th & 3.
San Francisco takes back over, up 7-0.
8:31 p.m.: On his first throw of the game, Young hits Rico Dowdle for three yards, setting up a 3rd & 13.
49ers 7, Panthers 0
8:26 p.m. TOUCHDOWN: One drive, one score for the 49ers.
Right outside the end zone, Purdy connects with Juan Jennings for a 12-yard score as the 49ers take a 7-0 lead.
Jauan Jennings bounces off defenders to cap a 15-play 49ers opening drive 💪
— NFL (@NFL) November 25, 2025
CARvsSF on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/dPHFqb2bfp
The 49ers open the drive with a 15-play, 72-yard drive.
8:23 p.m.: The 49ers continue to move the ball, a lot of it through McCaffrey. He has eight touches for over 30 scrimmage yards on the first drive as the 49ers are inside the red zone.
8:21 p.m.: The 49ers keep the chains moving, and it's second-year receiver Ricky Pearsall.
8:18 p.m.: On 3rd & 10, it's the former Panther who moves the sticks for San Francisco.
Purdy hits McCaffrey on the right side and the superstar jumps ahead of the sticks for a first down.
8:15 p.m.: We have kicked off at Levi's Stadium.
Brock Purdy and the 49ers offense has the ball first.
8:08 p.m.: Panthers wide receiver Tet McMillan leads all rookie receivers in receiving yards and is coming off a two touchdown performance against the Falcons.
Hype me up bro 🗣️@Ticketmaster | #KeepPounding pic.twitter.com/fBjnvnQ1cL
— Carolina Panthers (@Panthers) November 25, 2025
McMillan will need to have another big game for the Panthers to win tonight.
7:51 p.m.: Tonight's matchup features one quarterback who was selected with the first pick in the NFL Draft and one selected with the last.
Are you ready for some football?
— NFL (@NFL) November 25, 2025
CARvsSF– 8:15pm ET on ESPN/ABC
Stream on @NFLPlus and ESPN App pic.twitter.com/mREDwogPCK
Young and Purdy now both look for a huge win on Monday Night Football.
7:35 p.m.: Last time out, Bryce Young had a career-high 448 passing yards and three touchdowns.
Bryce 🤝 MNF @Ticketmaster | #KeepPounding pic.twitter.com/b9P51qd780
— Carolina Panthers (@Panthers) November 25, 2025
The former No. 1 overall pick is in a pivotal year three, with the Panthers inching towards a playoff berth.
7:18 p.m.: Kickoff is less than an hour away.
Special cleats for Brock Purdy on Monday Night Football. #MyCauseCleats
— NFL (@NFL) November 24, 2025
Learn more about @brockpurdy13’s cause and donate here: https://t.co/gDJ0BIUpxG pic.twitter.com/vW424FB9BI
Both the 49ers (7-4) and Panthers (6-5) look to get a huge mid-November win.
7:03 p.m.: Brock Purdy will make his second consecutive start tonight after missing multiple weeks with an injury.
Brock rolled in rocking his cause on his car. My Cause My Car 🚗@Toyota | #FTTB pic.twitter.com/xjym0wkLLB
— San Francisco 49ers (@49ers) November 24, 2025
In a win against the Arizona Cardinals, Purdy had 200 yards and three touchdowns.
6:42 p.m.: With a win tonight, Carolina will take sole possession of first place in the NFC South.
All eyes on us @Ticketmaster | #KeepPounding pic.twitter.com/FQMl1drAIh
— Carolina Panthers (@Panthers) November 24, 2025
The Panthers will also jump San Francisco in the NFC conference standings.
5:21 p.m.: Christian McCaffrey is on-site ahead of the first matchup vs. His former team.
CMC means business 👔@LEVIS | #FTTB pic.twitter.com/czwF0MwyJQ
— San Francisco 49ers (@49ers) November 24, 2025
McCaffrey set Panthers franchise records for most scrimmage yards in a single season, most receptions in a single season, career receptions and receiving yards. He also set NFL single-season records, becoming the third player in NFL history to have a 1,000/1,000 season (in 2019), set the NFL record for receptions by a running back with 116 in 2019 and was the fastest ever to 3,000 rushing and receiving yards, reaching the feat in 57 games.
5:19 p.m.: The Panthers are breaking out a new uniform combination for tonight's primetime matchup.
New fit unlocked 🔓 pic.twitter.com/Z3B1BNmDRy
— Carolina Panthers (@Panthers) November 24, 2025
Carolina will wear its alternate black helmets with its white road uniforms.
MORE NFL WEEK 12:
- Why Chiefs remain outside playoff picture even after beating Colts in OT
- How Steelers' loss, Ravens' win flips leaderboard in AFC North
- Lions, Bears, Packers all picks up wins to maintain pace in NFC North
- Jaxon Smith-Njigba breaks Seahawks' single-season receiving record in just 11 games
- Amon-Ra St. Browns trolls Giants with Victor Cruz salsa celebration
Where to watch 49ers vs. Panthers
49ers vs. Panthers start time
- Date: Monday, Nov. 24
- Start time: 8:15 p.m. ET
The 49ers and Panthers will kick off Week 12's edition of "Monday Night Football" at 8:15 p.m. ET.
The game will be played at Levi's Stadium in Santa Clara, California.
MORE: Rams, Cowboys rise in Week 12 NFL power rankings
What channel is 49ers vs. Panthers on today?
The "Monday Night Football" matchup between San Francisco and Carolina will air nationally on ESPN.
Fans can stream "Monday Night Football" through the ESPN app. You can also live stream the game through Fubo, which carries ABC, ESPN and ESPN2 in its channel lineup, and is currently offering a free trial.
49ers 2025 schedule
Here's the rest of San Francisco's 2025 schedule.
| Date | Opponent | Time (EST) |
| Sun., Nov 30 | at Browns | 1 p.m. |
| Sun., Dec. 14 | vs. Titans | 4:25 p.m. |
| Mon., Dec. 22 | at Colts | 8:15 p.m. |
| Sun., Dec. 28 | vs. Bears | 8:20 p.m. |
| TBD | vs. Seahawks | TBD |
Panthers 2025 schedule
Here's the rest of Carolina's 2025 schedule.
| Date | Opponent | Time (EST) |
| Sun., Nov 30 | vs. Rams | 1 p.m. |
| Sun., Dec. 14 | at Saints | 4:25 p.m. |
| Sun., Dec. 21 | vs. Buccaneers | 1 p.m. |
| TBD | vs. Seahawks | TBD |
| TBD | at Buccaneers | TBD |