SANTA CLARA -- Three drives into the 49ers' 36-26 win over the Cardinals, it appeared that quarterback Jimmy Garoppolo and the entire offense had a severe hangover from their heartbreaking Week 10 loss to the Seahawks. 

San Francisco had punted twice and turned it over on downs once. The once-dominant run game sputtered and was held to seven yards. Garoppolo had completed one pass for four yards. 

Then, on the 49ers' fourth possession, they got back on track. 

On first down, Garoppolo connected with Richie James Jr. for a 57-yard gain and the offense didn’t look back. On a day when the running game never got going, only squeaking out 34 yards total, San Francisco's quarterback put the responsibility on his shoulders to move the ball down the field. 

“I think we all felt the same way throughout the game,” Garoppolo said. “Some things were working and some things weren’t. Every game is different. Some games we’ve rushed for 200-plus yards and we pass less yards. So, just how our team is built, it doesn’t matter which way we have to win it, we will find a way and that’s what you like to see.” 

The 49ers were so stifled on the ground that coach Kyle Shanahan had to adjust his game plan. That shift put the responsibility on to the shoulders of his signal caller, and Garoppolo responded to the pressure without batting an eye.   

 

“That’s something we haven’t put him in this year,” Shanahan said. “We had to there, we had no choice. He did a hell of a job. Really played unbelievable. I think that was the first time I consciously got away from it in the second half, just because it didn’t look like it was going well.”

Garoppolo had seen this story play out before. Just two weeks ago, he threw for 317 yards against the same Cardinals defense. This time, Garoppolo ended up with a career-high 424 yards passing, connecting on 34 of his 45 throws with four touchdowns and two interceptions. 

“It’s similar to what they did last time,” Garoppolo said. “But just when you’re rushing the ball as good as our offense does, that’s what you expect. That defense, they’re good. They’re a good defense, took away some of the things we wanted to do early and we just had to change some things up as the game went.”

What might be surprising is that Garoppolo’s success didn't come with his usual cast of characters. With George Kittle not playing and Emmanuel Sanders only seeing a limited number of snaps due to injury, other pass-catchers were called on to make plays. Garoppolo believes the fact that they did speaks to the character of the locker room. 

[RELATED: Kittle can't say enough about fellow 49ers TE Dwelley]

“I thought guys stepped up in big situations,” Garoppolo said. “When guys got their number called, a little banged up, some guys, they just played through it. Our team, we have a good group of guys where it doesn’t matter if it’s the run game, the pass game, offense, defense, special teams. Whatever it takes to win, that’s what we are willing to do.”