The loss dropped the Packers (4-2) into second place in the NFC West, a half game behind the Chicago Bears.
"Today was the best our guys have done this year," Vikings coach Dennis Green said.
Favre stung the defending Super Bowl champion Ravens for 337 yards and three touchdowns, but managed just 169 yards against the Vikings and had an interception returned 27 yards for a score by linebacker Kailee Wong. Both of Favre's scoring passes came after the Vikings built a big lead.
Struggling at the Metrodome is nothing new for Favre, who is 2-8 lifetime in the building.
"They blitzed a lot and we had to guess," said Favre, who completed 21 of 35. "They were able to stop our run on the blitzes."
The Packers' Ahman Green broke off a 61-yard run, but had just 12 yards on his other 10 carries.
Entering the game with the NFL's 20th-ranked running attack, the Vikings rushed for a season-high 196 yards on 37 carries.
"Our offensive linemen did a great job," Culpepper said. "This game shows how important it is for us to move the ball on the ground."
With rookie Michael Bennett nursing a sprained ankle, Doug Chapman rushed for a career-high 90 yards on 22 carries. Minnesota quarterback Daunte Culpepper aided the running game with 71 yards on nine carries, including a 14-yard touchdown that helped the Vikings improve to 3-3.
"They particularly hurt us on the draw," Packers defensive tackle Santana Dotson said. "Chapman running the lead draw and running the quarterback draw really hurt us."
A renowned Packer-killer, Moss had eight catches for 73 yards, but was kept out of the end zone. In seven career games against Green Bay, Moss has 38 receptions for 826 yards and seven touchdowns.
However, the Packers were not able to keep Carter out of the end zone. Carter caught a 43-yard touchdown pass down the left sideline for the first score of the game 6:42 into the second quarter.
It was the 127th career touchdown for Carter, who is fourth on the all-time list.
Just 22 seconds after Carter's score, Wong intercepted a pass intended for Corey Bradford and returned it 27 yards for a touchdown, giving Minnesota a 14-0 lead.
"I just dropped into coverage we're not usually in and it kind of confused them a little bit," Wong said. "He (Favre) threw the ball to me and I just kind of went black from then on. I don't really remember half the game after that because I was so winded and excited and tired at the same time."
It was the first touchdown on an interception return by a Vikings linebacker since Carlos Jenkins had a 19-yard score against Chicago in November 1992.
"I think getting up by 14 points made him (Favre) have to throw a lot," Green said. "If you don't have the time to run the ball a great deal then it makes it much more difficult."
Gary Anderson kicked field goals of 42 and 36 yards in the final 3:29 of the half as the Vikings increased the advantage to 20-0.
The Packers showed signs of a possible comeback, opening the second half with an eight-play, 73-yard drive. Green highlighted it with a 61-yard run to the Minnesota 20 and Favre capped it with a two-yard touchdown to tight end Bubba Franks.
But Green Bay did not score again until Favre connected with Charles Lee on a three-yard pass with 45 seconds left in the game.
"The opening drive of the second half I thought was a great statement for us," Packers coach Mike Sherman said. "Then that was the end of it."
Culpepper scored on a 14-yard run 53 seconds into the fourth quarter to cap an 11-play drive which lasted more than 6 1/2 minutes. Culpepper escaped the reach of linebacker Nate Wayne and broke a tackle by safety Chris Akins at the Green Bay three before reaching the end zone.
Culpepper also rolled to his right and drilled a pass to Jake Reed for the two-point conversion to increase the lead to 28-7.
The Vikings followed with a 14-play, 73-yard drive which lasted more than 9 1/2 minutes and culminated with a two-yard touchdown run by fullback Jim Kleinsasser, the first of his NFL career.