GLENDALE, Ariz. — The 49ers lined up Sunday without their two starting defensive tackles, and their run defense suffered.
But the 49ers had more than enough offense to pull away from the Arizona Cardinals for a 45-29 victory in front of a large gathering of supporters in the road stadium.
Stay in the game with the latest updates on your beloved Bay Area and California sports teams! Sign up here for our All Access Daily newsletter.
The 49ers clinched the NFC West title and improved to 11-3 on the season. Coach Kyle Shanahan's team took another step closer to gaining home-field advantage in the NFC.
If the 49ers win their final three games, they will assure themselves of a first-round bye in the playoffs as the NFC's No. 1 seed. Their remaining games are against the Baltimore Ravens on Christmas night, at the Washington Commanders on New Year's Eve, then back home to finish the season against the Los Angeles Rams.
In the process of dispatching the Cardinals (3-11), the 49ers continued their dominance over NFC West teams. It was the 49ers’ 12th consecutive victory against division opponents.
Here are the three takeaways from the Week 15 game at State Farm Stadium:
San Francisco 49ers
Find the latest San Francisco 49ers news, highlights, analysis and more with NBC Sports Bay Area and California.
Purdy’s first-half scare
It didn't look good when Brock Purdy was on the ground late in the first half.
Center Jake Brendel checked on the 49ers quarterback, and turned away and reacted angrily after Cardinals edge rusher Dennis Gardeck was penalized for roughing the passer for an apparent helmet-to-helmet hit on Purdy.
Purdy remained on the ground for a minute and was taken to the medical tent for further observation.
Backup quarterback Sam Darnold was on the field for three plays before Purdy checked out OK and got a few warmup tosses on the sideline before returning to the game.
Purdy completed a third-and-2 pass to tight end George Kittle for 19 yards, then completed the touchdown drive with a 5-yard scoring pass to Christian McCaffrey.
Purdy’s second TD pass of the game provided the 49ers with a 21-13 lead with 1:14 remaining in the half.
Purdy and McCaffrey hooked up again to open the second half to extend the 49ers’ lead to 28-13.
In his first professional game in his home state, Purdy only strengthened his candidacy for NFL Most Valuable Player. He completed 16 of 25 passes for 242 yards and four touchdowns with zero interceptions and a 135.3 rating.
Ward takes it to the house
Cornerback Charvarius Ward’s status was in question through most of the week after he was able to get on the field for just a limited practice session Friday, and was listed as questionable to play in Sunday's game. Ward saw action in just four plays of the 49ers’ Week 14 game before leaving with a groin injury.
Ward was active Sunday, though, and it didn't take him long to show that he looked just fine.
Ward stepped in front of Cardinals tight end Trey McBride on a fourth-and-3 pass from Kyler Murray in the first quarter, secured the catch and took off on a sprint. He stepped through wide receiver Greg Dortch's diving tackle attempt at midfield and outran James Conner to the end zone.
It was the first career NFL touchdown for Ward, who was playing in his 87th career regular-season game. His career also includes 14 playoff games.
The 49ers went 28 games, including three in the playoffs, without an interception return for a touchdown. Emmanuel Moseley had the 49ers’ last pick-six on Oct. 9, 2022, against the Carolina Panthers.
Ward added another interception midway through the fourth quarter as the Cardinals tried to rally from a 20-point deficit.
Closing in on Rice’s record
McCaffrey caught his sixth and seventh scoring passes and added his 13th rushing touchdown of the season. He now has 20 total TDs on the season, and continues to close the gap toward the 49ers’ all-time single-season record.
Hall of Famer Jerry Rice scored 23 touchdowns in the strike-shortened 1987 season, accomplishing the team record in just 12 games.
McCaffrey already owns the 49ers’ single-season rushing record, as he closes in on another team record.
McCaffrey gained 115 yards on 18 carries Sunday, and also caught five passes for 72 yards. He had to work hard for his second touchdown of the game, though.
McCaffrey gained tons of separation, and Purdy made it a little more difficult for him than necessary. Purdy spun to escape the rush and threw downfield moving to his left, forcing McCaffrey to backpedal and make a leaping catch before falling at the Arizona 10-yard line. Because he wasn't touched, McCaffrey was able to get to his feet and take it the rest of the way for a 41-yard touchdown.
The TD, coming on the 49ers’ first drive of the second half, increased their lead to 28-13 less than two minutes into the third quarter. His 1-yard scoring run with a minute left in the third quarter gave the 49ers a 35-16 lead.
McCaffrey became the fourth player in NFL history with at least 1,000 rushing yards and 500 receiving yards in four or more seasons, joining Marshall Faulk, Thurman Thomas and Tiki Barber.