The Arizona Cardinals defense played to stop the 49ers' rushing attack Thursday night, and San Francisco quarterback Jimmy Garoppolo took advantage. 

Garoppolo turned in one of the best performances of his career in Thursday's 28-25 win in Glendale, picking apart the Cardinals when they lined up to play the run before the snap. When Arizona had more defenders in the box than San Francisco had blockers, Garoppolo completed 14 of 20 passes for 152 yards and two touchdowns, according to NFL Next Gen Stats.

The Cardinals' approach made sense. Entering Thursday, the 49ers ranked second in the NFL with 181.1 rushing yards per game and no team ran the ball more over the first eight weeks than San Francisco (38.9 attempts per game). As a result of Arizona's approach, the 49ers ran for their third-lowest total all season (101). 

But Garoppolo stepped up with the Cardinals forcing him to beat them, leading the 49ers to their eighth straight win and San Francisco's best start through eight games since 1990. Whether Garoppolo's performance on a short week is enough to discourage opposing defenses from taking the same approach, coach Kyle Shanahan has to be happy with the possibility if that opens up room for the running game.


[RELATED: How will 49ers try to replace injured Alexander?]

Garoppolo will have a favorable matchup in Week 10 as he tries to replicate his Week 9 performance. The Seattle Seahawks have allowed the NFL's sixth-most passing yards per game (273.0) and have only sacked opposing quarterbacks nine times in 2019. Garoppolo should get a boost with tackle Joe Staley set to once again protect the QB's blind side on Nov. 11 at Levi's Stadium. 

With one of the NFL's best defenses and rushing offenses, the 49ers haven't needed to rely on Garoppolo's arm this season. Thursday showed that they can when needed.