The Thursday Night Football matchup between the Arizona Cardinals and the San Francisco 49ers initially looked like it would come down to which team managed to make fewer mistakes. The Cardinals turned it on after the half, despite the absence of starting quarterback Carson Palmer, and Arizona won 33-21.

The Cardinals scored three touchdowns in nine minutes of play to make it a 21-7 game in the third quarter, and two of those scores were Larry Fitzgerald receptions.

Early in the game, Fitzgerald was slammed to the turf by a 49ers defender on a play that didn’t even count because of a penalty, and the Niners weren’t flagged for it. It seems like San Francisco might have made Fitzgerald a little angry.

Fitzgerald’s first touchdown came in the second quarter immediately after Calais Campbell intercepted a Blaine Gabbert pass intended for tight end Garrett Celek. Cardinals backup Drew Stanton just needed one play to get the ball in the end zone, and a 21-yard pass to Fitzgerald did the trick.

His second touchdown of the night was in the third quarter, on a 29-yard pass from Stanton.

It was clear that Fitzgerald was excited about his contributions. Following his second touchdown, Fitzgerald celebrated so enthusiastically that he knocked over tackle Earl Watford.

Fitzgerald’s dominant play earned admiration from Saints rookie wide receiver Michael Thomas.

That man @LarryFitzgerald teachin me some stuff tonight... — Mike Thomas (@Cantguardmike) October 7, 2016

Fitzgerald did a lot to put the Cardinals in a position to win the game, but he didn’t do it alone. Running back David Johnson and Fitzgerald combined for 266 yards — 92 percent of the Cardinals’ total offensive production — and four touchdowns. The rest of the team had 22 yards combined.

Johnson finished with the highest number of single-game rushing yards so far this season with 157, and his two touchdowns helped Arizona put the game out of reach of the 49ers.

The first score of the second half was on a 4-yard run by Johnson, and he added a touchdown in the fourth quarter with a leaping 2-yard run.

Arizona’s defense gave the offense plenty of opportunities to establish and keep a lead. The Cardinals picked off Blaine Gabbert twice and forced a fumble, and Arizona’s offense converted those turnovers into 17 points.

Calais Campell was a game-changer on defense. He intercepted Gabbert in the second quarter, setting up a toucdown for the Cardinals. He added two sacks, including a safety on Gabbert with just over a minute remaining that sealed the win for the Cardinals.

It was a long night for the 49ers, as Gabbert struggled, multiple receivers dropped balls, and San Francisco fans chanted that they wanted to see Colin Kaepernick take over under center. Gabbert added a fourth quarter rushing touchdown to narrow Arizon’a lead to 31-21, but it was too little, too late.

The 49ers defense wasn’t much better than the offense, allowing Johnson to run at will and struggling to cover Fitzgerald. San Francisco sacked Stanton once and forced one fumble, but particularly in the second half, could not keep the Cardinals out of the end zone.

Many were tempted to count out the Cardinals on Thursday night with Carson Palmer sidelined with a concussion, but thanks to Larry Fitzgerald and David Johnson, Arizona comes away with a much-needed win.