The Vikings were clearly unhappy with their performance against the Colts a week ago, and they showed it by dominating a very solid San Francisco 49ers team at home on Sunday. The offense, defense and special teams contributed for 60 minutes to a thorough victory that completely changes the outlook for this team. High marks all around, but the best scores come if they can build on this win and play this way going forward.

Offense: A-

QB Christian Ponder’s numbers won’t show it, but he had one of his best games as a pro. He was 21 of 35 for 198 yards and two touchdown passes. Throw in great decision-making and a big-time 23-yard scramble for a touchdown, and he was instrumental in the convincing win. Great performances by the offensive line, WR Percy Harvin and TE Kyle Rudolph, plus excellent supporting efforts by WR Devin Aromashodu and RB Adrian Peterson added to it. But RB Toby Gerhart’s three late fumbles that put the win in jeopardy kept the grade from being perfect.

Defense: A

The offensive efficiency aside, it was the defense that kept the Vikings in the game. The Vikings defense stopped two momentum-building drives by the 49ers and forced them to settle for field goals right before and after halftime. And when the referees and Gerhart tried to give the ball to the 49ers offense late, the defense forced two big turnovers to salt away the victory. LB Chad Greenway had 13 tackles and two sacks -- one that electrified the fans early and got them into the game. In dominating style, the Vikings defense kept RB Frank Gore in check, QB Alex Smith on the run and limited league-leading scorer TE Vernon Davis to just one trip to the end zone.

Special teams: B-

The special-teams unit was up and down the entire game, but their contributions were huge. They were responsible for a six-point swing and a momentum boost when Letroy Guion blocked a field goal with a minute left before halftime and K Blair Walsh connected on a 52-yard field goal to set a Vikings record for consecutive games with a 50-plus yard field goal -- three. A bad initial punt by Chris Kluwe, a lack of touchbacks on kickoffs and lapses in kick coverage put San Francisco in good field positions, but they weren't often able to capitalize.

Coaching: B+

The coaching staff gets high marks for a solid game plan that smashed the 49ers on defense and kept their offense off the field with long, sustained drives. They stuck with the running game, and Peterson’s tough carries kept the Niners honest in pass coverage. Great involvement of Rudolph opened other opportunities on offense, and the defense didn’t miss a beat when starting S Mistral Raymond left the game with an injury. The late-game chaos has to fall on the shoulders of the replacement referees, and coach Leslie Frazier became as animated as he ever has in protest, but somewhere the coaching staff has to make themselves heard in what may have been one of the strangest replacement ref sequences to date -- and that is saying something.

For more Vikings news and notes, follow Joe Oberle on Twitter @CBSVikings.