The 49ers are not going to the playoffs.
And if the Arizona Cardinals do not make it to the postseason, they can look back and blame their game Saturday against their State Farm Stadium tenants.
The 49ers on Saturday pulled off a 20-12 upset of the Cardinals, who entered Week 16 in the seventh and final spot in the NFC playoff picture.
The 49ers, eliminated from the postseason race a week earlier, did not look like a team that was playing a meaningless game.
The 49ers improved to 6-9 on the season, while the Cardinals fall to 8-7.
Kicker Robbie Gould missed two field goals and an extra point to give the Cardinals one final chance with a minute left.
Here are three things you need to know about the 49ers’ game against the Cardinals.
Saleh’s defense rises
Defensive coordinator Robert Saleh’s unit made another strong case for an NFL head-coaching position.
It was an impressive three-hour job interview.
Despite playing without three defensive linemen, including Javon Kinlaw, cornerback Richard Sherman and safety Jimmie Ward, the 49ers did not play like they were short-handed.
The 49ers played exceptionally well against Pro Bowl quarterback Kyler Murray.
The team got great production from linebackers Fred Warner and Dre Greenlaw and the defensive backfield of Jason Verrett, Ahkello Witherspoon, K’Waun Williams, Tarvarius Moore and Marcell Harris.
Each of those players has a lot to play for, as none is signed beyond this season.
RELATED: Hyder sets career-high for sacks
Verrett made a big play late in the first half, breaking up a well-thrown pass intended for DeAndre Hopkins in the end zone. The play forced the Cardinals to settle for a field goal. Hopkins was shaken up on the play and was not available a short time later for a potential Hail Mary attempt at the end of the half.
In the first half, the Cardinals managed only 4.1 net yards per pass attempt.
The 49ers led 7-6 at halftime – the fewest points Arizona scored in the first 15 games of the season. Witherspoon made one of the plays of the day when he picked off Murray in the end zone with less than five minutes to play. Witherspoon redeemed himself after breaking contain to allow Murray to run for 30 yards on a fourth-and-1 play.
Kittle makes his return
The 49ers’ best player was also their healthiest and freshest player. That is why the 49ers took the risk of allowing tight end George Kittle to return for the final two games of the season.
Kittle was back in the starting lineup. He saw more time on the sideline than ordinary, as Ross Dwelley and Jordan Reed rotated into the game to lighten Kittle’s workload.
Kittle was targeted just once in the first half, and he caught a 24-yard pass with 6:22 remaining in the first quarter. He played 13 of the 49ers’ 26 snaps in the first half.
Kittle caught four passes for a team-high 92 yards. He caught all but one of the passes thrown his way.
Beathard takes care of business
C.J. Beathard made his first start since Week 8 of the 2018 season.
The 49ers’ offense was run-based, which made it a little more easy for Beathard.
Jeff Wilson rushed for a career-high 183 yards on 22 carries.
Beathard completed 13 of 22 attempts for 182 yards with three touchdowns and no interceptions.
Beathard threw touchdown passes to Wilson and Kyle Juszczyk to enable the 49ers to take a 14-6 lead late in the third quarter. Later, Juszczyk had another short TD reception.
Wilson carried a big load for the offense as he got the start in place of Raheem Mostert, who was placed on injured reserve Friday with an ankle injury.
Beathard was sacked three times in the first half, as right tackle Mike McGlinchey continued to struggle in pass protection.
But the 49ers kept Beathard well-protected in the second half and he did a better job of getting rid of the ball quickly. He was not sacked.