We’re running out of superlatives to describe how dominant the 49ers can be. Green Bay never really stood a chance after fumbling on the third play of the game, and never really threatened the 49ers after 57 seconds of game time. The 49ers took their first lead 1:58 into the game and never once looked back on their way to a 37-8 romp. Sunday night was the best win of the season against the best team they’ve played.
There were plenty of studs with a few duds in San Francisco’s victory over the Packers:
Studs: The entire defense

There were plenty of individual studs Sunday night, but the defense as a whole deserves the recognition here. They held the Packers, a team that averages 25 points and 356 yards per game, to just eight points and 198 yards. Aaron Rodgers threw for just 104 yards, the fewest yards he’s thrown for in his career minimum 30 passes, and he set a new low with 3.2 yards per attempt. The defense set the tone with a forced fumble on the first drive and never once lost that momentum.
Dud: LT Justin Skule

Skule really struggled in what became the worst game of the season for the tackle. Jimmy Garoppolo was under pressure a majority of the first quarter and into the second quarter. Skule was the culprit for a lot of that pressure with two sacks allowed. He also got flagged for holding on the same drive as one of those sacks. That drive was so bad for Skule that he was benched for Daniel Brunskill. The sixth-round pick has acquitted himself well in Joe Staley’s stead, but Sunday night was a forgetful one for the rookie.
Stud: LT Daniel Brunskill

Brunskill replaced Skule in the second quarter and the offense immediately turned around. Prior to Skule’s benching, the 49ers offense scored a touchdown following the fumble recovery and kicked a field goal with three punts sprinkled in. Brunskill came into the game and the 49ers offense went field goal, touchdown, field goal, punt, touchdown the next five drives. Whether it’s because of Brunskill or not, the 49ers offense flipped a switch when he entered the game.
Dud: CB Richard Sherman’s penalties

The penalties once again came back to bite both Sherman and the 49ers defense. A week after the cornerback was called for pass interference three times, Sherman was called for two backbreaking penalties on the same drive. The 49ers had a 23-0 lead on Green Bay’s first drive of the second half when the Packers drove the ball into the red zone. On a third-and-8, the Packers were called for a holding that would have given Green Bay a third-and-18, but Sherman was called for illegal contact that offset the holding and gave the Packers another chance. Rodgers scrambled for six yards for a fourth-and-2 on the ensuing play, but Sherman was called for an unsportsmanlike conduct after the play to reset the downs. The flags were both pretty iffy, especially the unnecessary roughness call for pushing running back Aaron Jones. Green Bay would score two plays later to briefly sneak back into the game.
Stud: TE George Kittle
As crazy as it sounds, when an offense’s best player comes back from injury, that offense looks a lot better. That was certainly the case Sunday night when Kittle returned to the lineup for San Francisco. Kittle missed the last two weeks with a bone chip in his ankle. He was targeted six times for six receptions, 129 yards and a touchdown. Kittle had receptions of 19, 22, and 61 yards with the longest resulting in a game-sealing touchdown. The touchdown came two plays after Green Bay got within 15 points and had a chance to sneak back into the contest.
Stud: DL Arik Armstead

Entering the 2019 season, Armstead had nine career sacks. After Sunday night, Armstead has 10.5 sacks on the 2019 season. He was in the backfield all night and finished with 2.5 sacks, a tackle for loss, and four quarterback hits. He had a very Dee Ford-esque sack when he sped around the right tackle and got to Rodgers untouched. Sunday was the best game of a season that’s turned his career around. While the entire defense was lights out, Armstead really shined and deserved some individual recognition.
Stud: QB Jimmy Garoppolo

Garoppolo quietly had a great game when his team needed it the most. Mistake-free, efficient football was the key, and the quarterback delivered. He finished with a career-high 12.7 yards per attempt on 20 passes. He completed 14 of his throws for 253 yards, two touchdowns, and no turnovers. It was the fourth time in the last five weeks he’s completed 70 percent of his passes. While he still had some trouble moving around in the pocket, his confidence throwing was through the roof (perhaps in part because of Kittle’s return). Garoppolo now has 20 touchdowns to 10 interceptions on the season.