Final2023 Week 15

State Farm Stadium, Glendale, AZ

San Francisco 49ers vs Arizona Cardinals, Week 15 2023

San Francisco 49ers

AwayWon

45

Arizona Cardinals

Home

29

Scoring by quarter
TeamQ1Q2Q3Q4Final
49ers147141045
Cardinals7631329

SF 45ARI 29 Final

  • Passing leader

    Brock Purdy

    SF · QB

    25.7PPR pts

    16/25, 242 YDS, 4 TD

  • Top fantasy scorer

    Christian McCaffrey

    SF · RB

    41.7PPR pts

    18 ATT, 115 YDS, 1 TD, 5 REC, 72 REC YDS, 2 REC TD

  • Cardinals leader

    Trey McBride

    ARI · TE

    20.2PPR pts

    10 REC, 102 YDS

  • Defensive playmaker

    Charvarius Ward

    SF

    2 INT, 1 TD, 3 TKL

49ers 45, Cardinals 29: San Francisco leads from start to finish

San Francisco led 21–13 at halftime and outscored Arizona 24–16 after the break to win 45–29. Arizona outgained the 49ers 436–406, but the 49ers averaged 7.5 yards per play.

The Cardinals went 7-for-16 on third down and committed two turnovers, while the 49ers finished without a giveaway.

The two teams meet again in Week 18 of 2026. If you roster anyone from either side, run the start/sit call in Redraft Command and it will weigh your lineup, your opponent and your league scoring, not only the player rankings.

Key advantages

  • +1.4 yards/play SF 7.5 · ARI 6.1
  • +2 turnover margin SF 0 turnovers
  • +13% third-down rate SF 57% · ARI 44%

Game Highlights

Official NFL highlights · Opens from YouTube

Got a 49er or Cardinal on your fantasy team?

Check their next matchup with the Start/Sit Tool, compare their value in the Fantasy Trade Calculator, or connect your league for personalized advice in Redraft Command.

Connect your league

Works with Sleeper, ESPN and Fleaflicker. No password needed.

Why the 49ers Won

San Francisco won the efficiency, turnover, and third-down battles.

Team stats comparison, 49ers vs Cardinals
49ersStatCardinals
7.5Yards per play6.1
0Turnovers2
57%Third-down conversion44%
Other team stats
406Total yards436
54Plays72
25:49Time of possession34:11

Scoring Summary

The 49ers scored six touchdowns and one field goal; the Cardinals scored three touchdowns and three field goals.

Scoring plays, 49ers vs Cardinals
TimeTeamPlaySFARI
1st quarter
10:40ARIJames Conner 2-yard TD run Takes leadMatt Prater XP07
6:33SFBrock Purdy → Deebo Samuel, 12-yard TD Ties gameJake Moody XP77
4:22SFCharvarius Ward 66-yard interception return TD Takes leadJake Moody XP147
2nd quarter
14:11ARIMatt Prater 58-yard FG1410
6:14ARIMatt Prater 43-yard FG1413
1:14SFBrock Purdy → Christian McCaffrey, 5-yard TD Extends leadJake Moody XP2113
3rd quarter
13:18SFBrock Purdy → Christian McCaffrey, 41-yard TD Extends leadJake Moody XP2813
4:20ARIMatt Prater 28-yard FG2816
1:08SFChristian McCaffrey 1-yard TD run Extends leadJake Moody XP3516
4th quarter
11:30ARIEmari Demercado 49-yard TD run2-pt try failed3522
7:09SFBrock Purdy → Deebo Samuel, 19-yard TD Extends leadJake Moody XP4222
3:09SFJake Moody 43-yard FG Extends lead4522
0:47ARIKyler Murray → Elijah Higgins, 8-yard TDMatt Prater XP4529

Fantasy Points: 49ers vs Cardinals, Week 15 2023

Fantasy leaders

  1. Christian McCaffreySFRB41.7 PTSRB1
  2. Brock PurdySFQB25.7 PTSQB4
  3. Deebo SamuelSFWR21.9 PTSWR11
  4. Trey McBrideARITE20.2 PTSTE3

Player Stats

Quarterbacks

Quarterback statistics
PlayerFPTSFINCMP/ATTPass YDSTDINTRush ATTRush YDSRush TDRateStart/Sit
Brock PurdySFQB25.7QB416/2524240———135.3Start/Sit →
Kyler MurrayARIQB15.3QB1926/3921112649067.4Start/Sit →
Sam DarnoldSFQB0.6QB332/320002-2085.4Start/Sit →
Clayton TuneARIQB0.0—————100—

WRs, RBs, & TEs

Receiver, running back and tight end statistics
PlayerFPTSFINPOSRush ATTRush YDSRush TDTGTRECRec YDSRec TDStart/Sit
Christian McCaffreySFRB41.7RB1RB18115155722Start/Sit →
Deebo SamuelSFWR21.9WR11WR111074482
Trey McBrideARITE20.2TE3TE———11101020Start/Sit →
James ConnerARIRB17.9RB11RB148613330
Elijah HigginsARITE14.4TE7TE———44441Start/Sit →
Emari DemercadoARIRB14.0RB16RB46413160Start/Sit →
George KittleSFTE7.4TE22TE———42540Start/Sit →
Michael CarterARIRB6.7RB41RB327033100Start/Sit →
Brandon AiyukSFWR6.7WR57WR———53370
Jauan JenningsSFWR4.5WR75WR———22250Start/Sit →
Greg DortchARIWR4.0WR80WR15032150Start/Sit →
Geoff SwaimARITE3.6TE40TE———11260
Rondale MooreARIWR2.8WR88WR1303250
Jordan MasonSFRB2.0RB68RB5200————
Zach PascalARIWR0.0—WR———4000
Michael WilsonARIWR0.0—WR———3000Start/Sit →
Ronnie BellSFWR0.0—WR———1000

Fantasy Usage

San Francisco 49ers

Snap Share

  1. George KittleTE48 snaps86%
  2. Deebo SamuelWR48 snaps86%
  3. Brandon AiyukWR46 snaps82%
  4. Christian McCaffreyRB43 snaps77%
  5. Jauan JenningsWR23 snaps41%

Target Share24 targets

  1. Deebo Samuel29%, 7 targets
  2. Christian McCaffrey21%, 5 targets
  3. Brandon Aiyuk21%, 5 targets
  4. George Kittle17%, 4 targets
  5. Jauan Jennings8%, 2 targets
  6. Other4%, 1 targets

Carry Share26 carries

  1. Christian McCaffrey69%, 18 carries
  2. Jordan Mason19%, 5 carries
  3. Sam Darnold8%, 2 carries
  4. Deebo Samuel4%, 1 carries

Arizona Cardinals

Snap Share

  1. Michael WilsonWR65 snaps88%
  2. Trey McBrideTE53 snaps72%
  3. Greg DortchWR48 snaps65%
  4. Rondale MooreWR47 snaps64%
  5. James ConnerRB36 snaps49%

Target Share38 targets

  1. Trey McBride29%, 11 targets
  2. Zach Pascal11%, 4 targets
  3. Elijah Higgins11%, 4 targets
  4. James Conner8%, 3 targets
  5. Greg Dortch8%, 3 targets
  6. Other34%, 13 targets

Carry Share30 carries

  1. James Conner47%, 14 carries
  2. Kyler Murray20%, 6 carries
  3. Emari Demercado13%, 4 carries
  4. Michael Carter10%, 3 carries
  5. Greg Dortch3%, 1 carries
  6. Other7%, 2 carries
View full usage tableHide full usage table
Offensive snaps and share for the skill positions
PlayerSNAPSSNAP %TGTTGT %CAR
Michael WilsonARIWR6588%38%0
George KittleSFTE4886%417%0
Deebo SamuelSFWR4886%729%1
Brandon AiyukSFWR4682%521%0
Christian McCaffreySFRB4377%521%18
Trey McBrideARITE5372%1129%0
Greg DortchARIWR4865%38%1
Rondale MooreARIWR4764%38%1
James ConnerARIRB3649%38%14
Jauan JenningsSFWR2341%28%0
Elijah HigginsARITE2534%411%0
Marquise BrownARIWR2432%00%0
Zach PascalARIWR2128%411%0
Michael CarterARIRB1824%38%3
Emari DemercadoARIRB1824%38%4
Jordan MasonSFRB1323%00%5
Geoff SwaimARITE1520%13%0
Charlie WoernerSFTE1120%00%0
Ronnie BellSFWR814%14%0
Chris ConleySFWR611%00%0
Brayden WillisSFTE611%00%0

Fantasy Points vs Expected

Expected points (xFP) are what a player's pass attempts, carries and targets are worth at the league's average rates; the difference is what the player made of them.

  • Biggest overperformer+22.3Christian McCaffrey41.7 PTS vs 19.4 xFP
  • Biggest underperformer−6.7Zach Pascal0.0 PTS vs 6.7 xFP
  • Highest expected volume20.1 xFPKyler Murray15.3 PTS scored
Usage and expected fantasy points
PlayerPTSxFPvs xFPSnap%UsageRte%Pass attCarCar%TgtTgt%
Kyler MurrayARI · QB15.320.1−4.897%39 att—39620%00%
Christian McCaffreySF · RB41.719.4+22.377%69% car—01869%519%
Trey McBrideARI · TE20.218.4+1.872%29% tgt—000%1129%
James ConnerARI · RB17.913.6+4.349%47% car—01447%38%
Deebo Samuel Sr.SF · WR21.912.3+9.686%27% tgt—014%727%
Brock PurdySF · QB25.710.5+15.282%25 att—2500%00%
Brandon AiyukSF · WR6.78.3−1.682%19% tgt—000%519%
Emari DemercadoARI · RB14.07.5+6.524%13% car—0413%38%
Michael CarterARI · RB6.76.8−0.124%10% car—0310%38%
Elijah HigginsARI · TE14.46.7+7.734%11% tgt—000%411%
George KittleSF · TE7.46.7+0.786%15% tgt—000%415%
Zach PascalARI · WR0.06.7−6.728%11% tgt—000%411%
Greg DortchARI · WR4.05.6−1.665%8% tgt—013%38%
Rondale MooreARI · WR2.85.6−2.864%8% tgt—013%38%
Michael WilsonARI · WR0.05.0−5.088%8% tgt—000%38%
Jauan JenningsSF · WR4.53.3+1.241%8% tgt—000%28%
Kyle JuszczykSF · RB4.63.3+1.3—8% tgt—000%28%
Jordan MasonSF · RB2.03.1−1.123%19% car—0519%00%
Sam DarnoldSF · QB0.62.5−1.918%3 att—328%00%
Geoff SwaimARI · TE3.61.7+1.920%3% tgt—000%13%
Ronnie BellSF · WR0.01.7−1.714%4% tgt—000%14%
Clayton TuneARI · QB0.00.6−0.63%0 att—013%00%

Team totals: 49ers 26 targets and 26 carries; Cardinals 38 targets and 30 carries. Shares are from the box score. Snap counts are from the weekly player logs (Sleeper), and include plays wiped out by penalties. Route counts, air yards and red-zone touches appear when the tracking feed is connected. League-average rates from the 2023 season: 1.67 PPR points per target (67% catch rate), 0.61 per carry and 0.42 per pass attempt. They don't adjust for field position or target depth.

Fantasy Verdicts

Brock Purdy Ran hot

SF · QB · 25.7 pts on 10.5 expected

16 of 25 passing for 242 yards, 4 touchdowns.

Verdict: The opportunities were worth 10.5 points; the touchdowns supplied the rest, and they are the part least likely to repeat.

Start/Sit: Brock Purdy →

Kyler Murray

ARI · QB · 15.3 pts on 20.1 expected

26 of 39 passing for 211 yards, 1 touchdown, 2 interceptions; 6 carries for 49 yards.

Verdict: The points matched the role, 20.1 expected.

Start/Sit: Kyler Murray →

Christian McCaffrey Ran hot

SF · RB · 41.7 pts on 19.4 expected

5 targets (19% of the team's), 5 catches for 72 yards and 2 touchdowns; 18 carries (69% of the team's) for 115 yards and 1 touchdown.

Verdict: The opportunities were worth 19.4 points; the touchdowns supplied the rest, and they are the part least likely to repeat.

Start/Sit: Christian McCaffrey →

Deebo Samuel Sr. Ran hot

SF · WR · 21.9 pts on 12.3 expected

7 targets (27% of the team's), 4 catches for 48 yards and 2 touchdowns; 1 carry (4% of the team's) for 11 yards.

Verdict: The opportunities were worth 12.3 points; the touchdowns supplied the rest, and they are the part least likely to repeat.

Trey McBride

ARI · TE · 20.2 pts on 18.4 expected

11 targets (29% of the team's), 10 catches for 102 yards.

Verdict: The points matched the role, 18.4 expected.

Start/Sit: Trey McBride →

James Conner

ARI · RB · 17.9 pts on 13.6 expected

3 targets (8% of the team's), 3 catches for 3 yards; 14 carries (47% of the team's) for 86 yards and 1 touchdown.

Verdict: The points matched the role, 13.6 expected.

Emari Demercado Ran hot

ARI · RB · 14.0 pts on 7.5 expected

3 targets (8% of the team's), 1 catch for 6 yards; 4 carries (13% of the team's) for 64 yards and 1 touchdown.

Verdict: The opportunities were worth 7.5 points; the touchdowns supplied the rest, and they are the part least likely to repeat.

Start/Sit: Emari Demercado →

Elijah Higgins Ran hot

ARI · TE · 14.4 pts on 6.7 expected

4 targets (11% of the team's), 4 catches for 44 yards and 1 touchdown.

Verdict: The opportunities were worth 6.7 points; the touchdowns supplied the rest, and they are the part least likely to repeat.

Start/Sit: Elijah Higgins →

Stock Up, Stock Down

Arizona Cardinals

  • Stock up: Greg Dortch played 65% of the snaps, up from a 33% season average.
  • Stock down: Geoff Swaim played 20% of the snaps, down from a 38% season average.

Fantasy Matchups

Fantasy points allowed per game by position, 2023 through Week 18.

Fantasy points allowed per game by position, 49ers defense and Cardinals defense
Points allowed to49ers DCardinals D
QBs14.819.4
RBs18.026.2
WRs33.432.5
TEs10.811.2

Regular season, summed from each game's box score and scored with this page's rules.

How the Game Swung

Arizona opened at 50% win probability and fell below 2% in the third quarter.

Cardinals win probability

Cardinals win probability by game minuteCardinals started at 50%, stood at 20% at halftime and finished at 0%, across 13 scoring plays.Q1Q2Q3Q4100%50%0%

Key Swings

  1. +20Conner 2-yd TD run50% → 70%Q1 10:40
  2. −21Purdy → Samuel, 12-yd TD71% → 50%Q1 6:33
  3. −22Ward 66-yd pick-six50% → 28%Q1 4:22
  4. −25Purdy → McCaffrey, 5-yd TD46% → 21%Q2 1:14
  5. −14Purdy → McCaffrey, 41-yd TD19% → 5%Q3 13:18

Swing in Cardinals win probability, in points

Play Calling and Possessions

Play calling, 49ers vs Cardinals
San Francisco 49ersMeasureArizona Cardinals
54Plays72
52%Pass rate58%
9.4Yds / dropback4.8
5.5Yds / carry7.8
4/7Third downs7/16

Efficiency edge San Francisco ran 18 fewer plays but gained 4.6 more yards per dropback.

  • Top targets
  • SF Samuel 27% · Aiyuk 19% · McCaffrey 19%
  • ARI McBride 29% · Higgins 11% · Pascal 11%

Possession Results

How each possession ended, 49ers vs Cardinals
ResultSFARI
Touchdowns53
Field goals13
Punts22
Turnovers02

SF turnover edge: +2

  • The Cardinals opened the scoring on their first possession, a 7-play, 75-yard drive that ended in a touchdown.
  • The 49ers scored touchdowns on two of their first three drives.
All 20 possessions, drive by drive
Drive chart
TeamStartPlaysYardsTimeResult
ARIQ1 15:007754:20Touchdown
SFQ1 10:408754:07Touchdown
ARIQ1 6:336332:11Interception
ARIQ1 4:228355:11Field goal
SFQ2 14:11341:42Punt
ARIQ2 12:2911446:15Field goal
SFQ2 6:1410755:00Touchdown
ARIQ2 1:14350:21Punt
SFQ2 0:536420:53End of half
SFQ3 15:004751:42Touchdown
ARIQ3 13:183-61:39Punt
SFQ3 11:39331:01Punt
ARIQ3 10:3812816:18Field goal
SFQ3 4:206603:12Touchdown
ARIQ3 1:088754:38Touchdown
SFQ4 11:307754:21Touchdown
ARIQ4 7:095110:56Interception
SFQ4 6:136223:04Field goal
ARIQ4 3:0912752:22Touchdown
SFQ4 0:472-20:47End of game
About these numbers

The 49ers' interception touchdown is counted as a Cardinals interception, not as a 49ers possession. Possessions that ended with the clock running out at the half or the end of the game aren't counted.

Personnel groupings, average depth of target and pass rate over expected appear when the tracking feed is connected.

49ers vs Cardinals Head-to-Head

The 49ers and Cardinals first met in 1951 and have played 70 times since. They have been NFC West rivals since 2002.

All-time series
39–3149ers lead, 70 meetings since 1951
Postseason
0No playoff meetings
Largest 49ers win
50–142003
Largest Cardinals win
47–72015

Since 2021

7–4 49ers lead

11 meetings since the 2021 season, regular season and playoffs.

Oldest to newest. 4 = 49ers win, C = Cardinals win, outlined = this game.

2026 Meetings

  • Week 18 49ers at Cardinals Upcoming

Recent Meetings

Season to Date (Through Week 18)

The 2023 regular season, from each game's box score.

Season to date, 49ers vs Cardinals
49ersStatCardinals
12-5Record4-13
28.9Points per game19.4
398.4Yards per game324.1
6.6Yards per play5.2
17.5Points allowed per game26.8
303.9Yards allowed per game355.7

49ers vs Cardinals Fantasy Outlook for 2026

One meeting is left on the 2026 schedule: Week 18 in Arizona. Here's how to decide who to play in your league.

Keep Exploring

2023 Game Logs for Players in This Game

49ers vs Cardinals Game FAQ

Who won the 2023 49ers vs Cardinals Week 15 game?

The San Francisco 49ers beat the Arizona Cardinals 45–29 in Week 15 of the 2023 season. The game was played at State Farm Stadium in Glendale, AZ, on December 17, 2023. See the 49ers' 2023 schedule.

What was the final score of 49ers vs Cardinals?

The final score was 49ers 45, Cardinals 29. The 49ers led 21–13 at halftime, and the second half went 49ers 24, Cardinals 16.

What happened in the 49ers vs Cardinals game?

San Francisco led 21–13 at halftime and outscored Arizona 24–16 after the break to win 45–29. Arizona outgained the 49ers 436–406, but the 49ers averaged 7.5 yards per play. Christian McCaffrey led all players with 5 catches for 72 yards and 2 touchdowns, plus 18 carries for 115 rushing yards and a touchdown. The Cardinals committed 2 turnovers, the 49ers none.

Who scored the most fantasy points in 49ers vs Cardinals?

Christian McCaffrey led the game with 41.7 PPR fantasy points, the RB1 of Week 15, on 5 catches for 72 yards and 2 touchdowns, plus 18 carries for 115 rushing yards and a touchdown. Brock Purdy was next with 25.7 (QB4). See Christian McCaffrey's 2023 game log.

Who led 49ers vs Cardinals in passing, rushing and receiving?

Brock Purdy (SF) led all passers with 16 of 25 for 242 yards and 4 touchdowns. Christian McCaffrey (SF) led in rushing with 18 carries for 115 yards and a touchdown. Trey McBride (ARI) led in receiving with 10 catches for 102 yards.

How many fantasy points did Christian McCaffrey score against the Cardinals?

Christian McCaffrey scored 41.7 points in PPR leagues, 39.2 in half-PPR and 36.7 in standard scoring against the Cardinals in Week 15 of the 2023 season, on 5 catches for 72 yards and 2 touchdowns, plus 18 carries for 115 rushing yards and a touchdown. He handled 69% of his team's carries.

Who outperformed and underperformed expected fantasy points in 49ers vs Cardinals?

Christian McCaffrey outperformed his expected fantasy points the most, scoring 41.7 PPR points on 19.4 xFP (+22.3). Zach Pascal fell furthest short, with 0.0 points on 6.7 xFP (−6.7). A gap either way reflects efficiency and touchdowns in one game; it is not a forecast. For matchups ahead, see fantasy points allowed by position.

Who had the highest expected fantasy points in 49ers vs Cardinals?

Kyler Murray had the most fantasy opportunity in the game, worth 20.1 expected PPR points (xFP) at league-average rates, and scored 15.3. Expected points measure the volume of a player's pass attempts, carries and targets, not how well he used them.

How did the 49ers beat the Cardinals?

The 49ers beat the Cardinals 45–29 because they averaged 7.5 yards per play to 6.1 and won the turnover battle 2–0.

Which team won the turnover battle in 49ers vs Cardinals?

The 49ers won the turnover battle 2–0: the Cardinals gave the ball away 2 times and the 49ers not at all. The 49ers won the game.

What was the turning point of 49ers vs Cardinals?

Brock Purdy's 5-yard touchdown pass to Christian McCaffrey with 1:14 left in the second quarter was the biggest swing of the game, moving the Cardinals' win probability from 46% to 21%.

What is the all-time 49ers vs Cardinals record?

The 49ers lead the all-time series 39–31 across 70 meetings since 1951.

When did the 49ers and Cardinals last play before this game?

Before Week 15 of 2023, they last met in the 2023 season on October 1, 2023, when the 49ers beat the Cardinals 35–16.

What is the 49ers vs Cardinals record since 2021?

The 49ers lead 7–4 across 11 meetings since the 2021 season, including this game.