We were all going to keep an eye on this game whether or not the 49ers could limit Arizona’s big play. On the first drive, Ahkello Witherspoon gave up a 38-yard bomb to Christian Kirk. It wasn't easy to tell if Kirk had pushed off, but the throw was perfect, and Witherspoon couldn’t get a hand on the pass. The Niners defense held in the red zone to force a field goal that made it 3-0, Arizona.
On the 49ers' second possession, C.J. Beathard found Brandon Aiyuk and George Kittle for a pair of 15-yard gains. Beathard found Jeff Wilson Jr. for a 21-yard touchdown that looked eerily similar to the same route Wilson Jr. scored on to win the game last season:
that had to be Deja vu for the Cardinals pic.twitter.com/aXQkWcxqwQ— Niners Nation (@NinersNation) December 26, 2020
Shanahan was surgical on the second drive, and Beathard did his job to give the 49ers a 7-3 lead.
Robert Saleh did his best to confuse Murray and the Cardinals early on and did a great job. The defense has been solid all season, and that continued against Arizona. There was one play where Saleh designed a Cover 2 but used Marcell Harris, who was the slot defender, as the deep safety. That confusion was a big reason why the Cardinals only had a field goal on their first couple of possessions.
Speaking of curveballs, Beathard kept the ball for a gain of 17 yards on one offensive drive. If you’re wondering whether Shanahan would adjust his offense for a QB with athleticism, there’s your answer.
On the Cardinals' next drive, Murray escaped Kerry Hyder Jr. and D.J. Jones's grasp for a would-be sack that Kyler turned into an 11-yard gain. Hyder added his 8.5 sack on the next play, which is a new career-high for him. The theme of the first half was the 49ers' speed overwhelming the Cardinals, as they continued to get off the field after the first possession.
One of the biggest differences this season has been the lack of athleticism upfront for the Niners. While Hyder’s sacks are nice, the team lacks team speed/athleticism on the edge without Nick Bosa and Dee Ford, and that was evident on a few Murray scrambles—especially the carry where he picked up nine yards on fourth and short. An Arizona field goal made it 7-6 after Jason Verrett had a tremendous pass breakup in the end zone against DeAndre Hopkins.
The 49ers were driving just before the half, but Mike McGlinchey was beaten around the edge by Haason Reddick to force a sack-fumble. These plays have happened far too often this season for the former first-round tackle, and they always seem to happen at the worst possible time. The Cardinals didn’t add any points, which made it 7-6 at the half.
The second half started with a little razzle-dazzle as Brandon Aiyuk took a reverse for a big gain and a short pass to Kittle put the 49ers in scoring position, but Robbie Gould’s 41-yard field goal was no good. Next week, the Niners have to decide if they’re going to pick up Gould’s option for next season. That miss is not going to help.
After a stop, the 49ers wasted no time marching the ball into Arizona territory. Another chunk play aided that to Kittle and a big run by Wilson Jr., who went over 100 yards on this drive. A seven-play, 71-yard drive was capped off with a touchdown pass from Beathard to Kyle Juszczyk to make the score 14-6, San Francisco. Another brilliant coaching performance from Shanahan and Saleh through 2.5 quarters.
The defense finally got a takeaway, as Fred Warner stripped and recovered the ball to give San Francisco a short field. The 49ers went three-and-out, and after Warner had a pass go through his hands, Murray scrambled up the middle for a first down on fourth and medium. A D.J. Jones sack made it 2nd & 23, but Murray found KeeSean Johnson for a 45-yard gain on what looked like a traditional coverage from 2018 where the 49ers defense was susceptible to a trips formation.
Arizona converted a 3rd & 3 to Hopkins, who beat Verrett on a slant. It was 3rd & 1 from the one-yard line, and they punched it in to make it 14-12. The Cardinals went for two but were unsuccessful. The offense didn’t give the defense much of a break, as they went three-and-out after Kittle dropped a pass. Warner deflected a pass on fourth down to give the Niners another short field. It was that kind of day for the defense.
A Wilson Jr. long run put the 49ers' offense inside the two-yard line, and another touchdown pass to Juszczyk made it 20-12. Gould missed another extra kick. Had he made the extra point, the game would have been two possessions.
The defense had another 4th & 1 against Arizona, but Kyler took the ball 30 yards around the edge for a first down. The 49ers needed a turnover in the worst way, and Witherspoon made an acrobatic interception in the end zone.
The offense had two more chunk plays on the next drive. A Wilson 20-yard run, as well as a back-shoulder throw to Kittle, put the 49ers at midfield, and they’d end up driving close to the red zone with just over two minutes to play. A Gould field goal would have iced it, but for the third time on the afternoon, Gould’s kick was wide. That left the door open for the Cardinals with just over a minute to play.
The 49ers avoided the critical mistake, and what do you know, they won. Beathard was efficient. Wilson Jr. was awesome. He finished the game with 22 carries for 183 yards. Kittle had 92 yards on four catches, and the defense held Murray to 4.9 yards per attempt on 50 throws. This was an outstanding performance all-around for the 49ers' defense, and the offense did just enough. They still need to get the special teams together, but a win feels good.