play

Cardinals’ Ojulari describes the impact he can make in injury return

Arizona Cardinals linebacker BJ Ojulari played in his first game since January 2024 on Nov. 16, as he made his return from two knee surgeries.

In their Week 11 loss, the Arizona Cardinals achieved something that this franchise hadn’t managed in 23 years — allowing 40-plus points in consecutive games.

In Week 10, they surrendered 44 points to the Seattle Seahawks. This time, it was 41 points to the San Francisco 49ers.

On a down-to-down basis, the Cardinals’ performance was not as bad as the scoreline would indicate. They actually outgained San Francisco, 6.9 yards per play to 5.4, and were undone by penalties, turnovers and special teams.

But, as Jonathan Gannon said after the game, “You can’t win when you give up that many points. And it really doesn’t matter how you get there.”

It was perhaps the most frustrated Gannon has ever appeared after a loss.

“We get people behind the sticks and we don’t win third down,” Gannon said. “We get in the red zone, we don’t make them kick field goals. So that’s a recipe to give up a lot of points. And I am a defensive head coach. It’s not acceptable.”

In most metrics, the Cardinals’ defense now ranks near the middle of the league, despite the offseason investments into that unit. By success rate, they rank 29th, which hints at their inconsistencies.

Here are five plays against the 49ers that help explain what’s going wrong.

First quarter, 11:19: Third-and-8, San Francisco 32-yard line

On their first full defensive drive, the Cardinals had back to back plays with two defenders occupying the same zone, basically giving up free first downs.

Rallis: “It goes into just focus and being able to carry out your assignment. Simple as that.” pic.twitter.com/qqhhLa8FuB

— Theo Mackie (@theo_mackie) November 18, 2025

The Cardinals’ defense began its first real drive with the game already in a precarious position, courtesy of San Francisco’s opening 98-yard kickoff return and a quick punt. But on this play, they had a chance to force a three-and-out and get the game back on track.

The 49ers stacked their receivers, hoping to create confusion as the first receiver, Ricky Pearsall, ran a vertical route, while Jauan Jennings broke off a 20-yard out route behind him.

The Cardinals, though, should have had it covered. They were playing cover-4, with cornerback Max Melton aligned to the outside. On that playcall, his responsibility is almost certainly to cover the deep quarter of the field. Instead, he stayed with the vertical route — which was already covered by Budda Baker — leaving Jennings wide open.

On the very next play, the Cardinals again had two players in the same zone. They had both outside cornerbacks fake a blitz before dropping into a variation of Tampa-2. But as they rotated into that look, two players — Melton and linebacker Akeem Davis-Gaither — both occupied the flat, with neither covering the hook zone further in.

It’s not clear whose responsibility that zone was, but regardless, it enabled another easy, self-inflicted first down. Baker’s expression told the story, as he looked toward his teammates in confusion after making the tackle.

“It goes into just focus and being able to carry out your assignment,” defensive coordinator Nick Rallis said. “Simple as that.”

The Cardinals also did not get much help from their pass rush on either snap. That group generated just a 25% pressure rate, their third-lowest mark of the year.

This season, only two Cardinals interior linemen have a pressure rate above 5% — 39-year-old Calais Campbell and rookie Walter Nolen, who has played just three games.

First quarter, 9:57: First-and-10, Arizona 30-yard line

Purdy made a mockery of the Cardinals defense on his first TD.

Saw them in base and motioned CMC to get some sort of tell that they were playing man. Then audibled to have CMC and Kittle running slot fades on Cody Simon and Akeem Davis-Gaither.

Neither guy had a prayer. pic.twitter.com/YfSy1uWkAg

— Theo Mackie (@theo_mackie) November 17, 2025

The 49ers capped that drive off with a third straight easy downfield completion, as quarterback Brock Purdy hit tight end George Kittle for a wide-open touchdown.

This time, it was all about Purdy’s mental processing.

Purdy was initially lined up under center, but before the snap, running back Christian McCaffrey briefly motioned outside. Some aspect of how the Cardinals reacted to that motion gave Purdy a tell that they were in man coverage. And with only four defensive backs on the field, Purdy knew the opportunity was rife for a mismatch.

Rather than running the initial play, he audibled, moving into the shotgun with three receivers out wide. And because the Cardinals were in man coverage, they had a pair of linebackers — Davis-Gaither and Cody Simon — tasked with covering slot fades from Kittle and McCaffrey, respectively.

play

Arizona Cardinals commit 17 penalties in loss to 49ers

Theo Mackie and Bob McManaman discuss the Arizona Cardinals’ 41-22 loss to the San Francisco 49ers at State Farm Stadium on Nov. 16, 2025.

Neither had any chance. Purdy could have found either receiver for an easy touchdown.

Really, by the time Purdy audibled, it was too late. To Rallis, this all began with the Cardinals’ inability to hide their look.

“It just goes into being able to present the same no matter what,” Rallis said. “You’ve gotta be able to not allow people to know where to go with the ball pre-snap. It just goes into disguise.”

Second quarter, 13:50: Second-and-7, Arizona 14-yard line

This was an opportunity to get one of the red zone stops Gannon pleaded for post-game. Instead, Melton committed a clear holding penalty, setting up a touchdown on the next play.

The 49ers put fullback Kyle Juszczyk in motion to sell play-action with McCaffrey. Melton, as the defender responsible for the perimeter on a run play, got sucked in by that movement and took a step in the wrong direction, enabling tight end Jake Tonges to sprint past him.

Melton, though, needed to understand that he had safety help over the top. Instead, he panicked and ripped Tonges to the ground, giving the officials their easiest call of the game.

The Cardinals’ 2024 second-round pick has shown some encouraging signs this season, but this was a difficult game for him. In addition to the first quarter missed assignment, he was beaten in man coverage multiple times, including on a fourth quarter comeback route when he appeared to switch off while defending McCaffrey.

Second quarter, 2:50: First-and-10: San Francisco 39-yard line

For the most part, the Cardinals controlled the 49ers’ run game, allowing 4.5 yards per carry excluding kneel downs. But they did allow McCaffrey to break off three carries of at least 10 yards, including on this play.

To a degree, that’s inevitable against a Kyle Shanahan offense. On one first-quarter play, Shanahan designed a run that looked nearly identical to a handful of earlier plays, only it was built to attack a completely different gap. The Cardinals were in trouble from the start on that one.

But here, they were in a position to get a stop to start the drive. As Purdy handed the ball to McCaffrey, a huge gap opened between the defensive end and outside linebacker. Simon, the middle linebacker, needed to attack that gap aggressively. Instead, he played on his heels. By the time he began to work downhill, it was too late. Tonges was in position to seal him out of the play and open a lane for an easy first down.

Simon, in his second career start, showed plenty of encouraging signs. He was quicker to read his cues than he was against the Seahawks, including on one impressive play when he single-handedly blew up a screen pass to McCaffrey.

“Comfortable to just go out there and pull the trigger,” Rallis said. “And when he saw it, go. That first game, there’s probably a couple plays where he wishes he would’ve just pulled the trigger once the play starts to formulate and he sees where he fits within the play.”

This play, though, showed some of the inexperience that Simon displayed against Seattle. That’s natural for a rookie, but it’s something the Cardinals will have to work through with Mack Wilson on injured reserve.

It’s also a symptom of their lack of moves to address the linebacker room in the offseason — which meant that one injury has thrust a fourth-round rookie into the starting middle linebacker job, rather than into a more ancillary role.

Second quarter, 0:12: First-and-10, San Francisco 45-yard line

With 12 seconds left and San Francisco holding just one timeout, the Cardinals inexplicably ceded 11 yards in 11 seconds. It’s the third time in the past seven games that they have allowed an end-of-half field goal drive in under 30 seconds.

On both plays here, Rallis dropped all 11 defenders into coverage.

On the first, rookie cornerback Denzel Burke grabbed a receiver as he was beaten off the line of scrimmage.

“Gotta make sure that we play with low hands in the secondary,” Rallis said.

The second was even more frustrating. With 5 seconds left in the half, the only play that could harm the Cardinals was a quick slant into field goal range. That’s exactly what Melton allowed.

“We’ve just gotta understand the call and play with good technique,” Rallis said.

It was, again, poor situational football from the Cardinals, and it helped the 49ers grab an extra three points to end the half. By the time that break arrived, the Cardinals had already allowed 25 points, setting up their seventh loss in eight games.

It happened for a whole host of reasons. At different points, the Cardinals were out-schemed and out-matched. They lacked both technique and discipline. They produced zero turnovers and just one sack. And, of course, they allowed 41 points.

That is rarely a recipe for victory.