SANTA CLARA — No one is perfect. Not even Jimmy Garoppolo.

The 49ers quarterback came close to a perfect 158.3 passer rating mark in the 49ers' 37-8 win over the Packers, but came up 12.5 points shy.

Garoppolo finished the night completing 14 of his 20 pass attempts for 253 yards and two touchdowns. He was sacked three times and fumbled the ball once on a botched exchange with center Weston Richburg, but Tevin Coleman was able to recover the ball.

After the game, coach Kyle Shanahan gave glowing reviews of his quarterback, who had put up his highest passer rating of 145.8 since arriving in Santa Clara in 2017.

“I thought Jimmy was great,” Shanahan said. “I thought we did very well in the run and the pass game. The opportunities that he had in the pass game, from what I can think back to, seemed pretty flawless. I think he protected the ball, weren’t close to any picks. I thought he protected the ball when they did get there in pass rush and made some big plays when he had too.”

Of course, as Shanahan has said in the past, nothing is ever as good or as bad as it seemed once you see the film. Shanahan was less effusive of Garoppolo after review the game film but he was still very complimentary.

“It was very good,” Shanahan said. “No one has ever done flawless. I was short on words but he played very well, I think it was one of his better games here. He was very efficient in everything he did, and when he got opportunities for big plays he didn’t miss any of them. He took care fo the ball as good as he has, so it was great.”

Those big plays were partly due to the return of tight end George Kittle to the field who caught all six of his targets for 129 yards and a touchdown. His 61-yard touchdown reception in the third quarter was the longest play of the night.

Deebo Samuel’s 42-yard touchdown reception was the second biggest play of the night for the 49ers. Having both of those play makers on the field helped the run game thrive which in turn took pressure off of Garoppolo.

“I think it’s also easier to do that too when everyone’s playing better around him also,” Shanahan said. “I think everything was going, run game, and the pass game. I think the one area that we did struggle the most in was third down. I don’t think we had as good of looks on those. They had a pretty good plan.

[RELATED: Jimmy G outperformed Rodgers in one key area]

“When everyone plays good around him he doesn’t have to be as risky, which is still tough but he did as good as he could with them.”

The 49ers look to get Matt Breida back on the field in preparation for the Ravens. And good news from Shanahan is that Kittle, Samuel and Emmanuel Sanders all made it through the match up with the Packers without any injury set backs.