MINNEAPOLIS (AP)—Brett Favre added another feat to his overflowing resume: He’s the first quarterback in history to beat all 32 NFL teams.

Well, he saved the best for last: The Green Bay Packers.

Favre’s first game against his former team was all fun for the Minnesota Vikings and all frustration for the Packers, as the graying quarterback kept his cool and connected for three touchdown passes and 271 yards in a 30-23 victory on Monday night.

“I don’t know how to explain it. I felt right, but I guess I never thought I’d be in that situation,” Favre said.

Favre went 24 for 31, without a turnover. He celebrated his first scoring toss with an awkward body bump with kicker Ryan Longwell, also a former Packers teammate, and showed plenty of emotion on this most emotional night. He stayed poised in the pocket all night, too, and avoided the risky throws that have defined his career almost as much as the success.

“I don’t think there was any question what he could do when he came back,” Packers cornerback Charles Woodson(notes) said. “But you know, we didn’t do ourselves any justice.”

The Vikings (4-0) sacked Favre’s replacement, Aaron Rodgers, eight times. Jared Allen(notes) was credited with 4 1/2 of them, a career high, including a safety in the fourth quarter that stretched the lead to 16. Rodgers had his first two turnovers of the season, and Favre turned both of them into vintage touchdown passes in the first half.

“I definitely wanted to get this win for Brett,” teammate Adrian Peterson said. “He downplayed it all week, but I just knew it meant a lot to him. I could see it in his eyes.”

Favre hugged Rodgers, Donald Driver and several other Packers once the game was over. Rodgers tried to engineer the kind of drive his predecessor is famous for, but he came up short.

“Below my expectations, definitely,” Rodgers said. “To have three possessions where you’re in their territory and come away with zero points, two of them are directly related to mistakes by myself, that’s disappointing.”

Favre had tons of time to throw throughout the game, and Rodgers had the exact opposite experience—often hanging onto the ball too long. He finished 26 for 37 for a career-high 384 yards, many of them in desperation down the stretch, and two touchdown passes.

The Vikings were relentless in their rush, particularly Allen on left tackle Daryn Colledge, who left in the third quarter with a right knee injury. Colledge moved from left guard two weeks ago when Chad Clifton got hurt.

Rodgers’ receivers let him down, too, though. On fourth-and-goal at the 1 in the third quarter, Rodgers found tight end Donald Lee(notes) open in the end zone. But the ball bounced off Lee’s chest and onto the turf, as Rodgers snapped his head back with his hands on the sides of his helmet.

Pink wristbands, cleats and sideline caps for breast cancer awareness gave the game a different look, but nothing altered the color scheme as much as Favre in purple. This was his sixth game with Minnesota, counting the preseason, but the sight of the guy who led Green Bay to a Super Bowl trophy and took only one losing record in 16 years there wearing the rival team’s jersey was still strange.

This was a highly anticipated and heavily hyped game. Everybody in the stadium stood all the way through the Vikings’ first possession, instead of sitting after the first few snaps like usual. Cameras flashed constantly.

Favre was clearly uncomfortable this week with all the attention on this reunion, trying to downplay the significance and stumbling through denials that his main motivation to unretire last year was revenge on general manager Ted Thompson for not letting him come back and compete for his old job with Rodgers.

“My statement has been what I’ve done over my career,” Favre said. “One game does not define my career good or bad. I know what I’ve done. I’m proud of what I’ve done. I know I can play. I wanted to do what it takes to win.”

One of the most excitable players football has ever seen, Favre’s history in emotional games has been mixed. In 2003, on Monday night against Oakland after the death of his father, Favre threw for 399 yards and four touchdowns. In 1999, though, he went 14 for 35 with four interceptions in his first game against Mike Holmgren after the head coach took over in Seattle.

Favre said he felt on this night a lot like he did in that game after his dad died. He said he was as nervous as he could remember, once it dawned on him in the afternoon the significance of this matchup.

“It’s why I play the game. It was fun. It never gets told to me, even though I do,” he said.

The Packers (2-2) stuffed Peterson with their new 3-4 defense, holding him to 12 yards on 11 attempts in the second half and 55 yards for the game. They even turned one short gain directly into points: Rookie Clay Matthews(notes) joined a gang tackle and ripped the ball out, returning it 42 yards to tie the score at 14.

“I was hoping we’d run the ball better than that,” Favre said. “Against a defense like that you don’t want to throw the ball that many times. But it was better than I thought it’d be.”

Favre trotted right out and took the Vikings down the field, though. He fired a 43-yard pass to Percy Harvin(notes) to give the Vikings first-and-goal at the 3, then caught a break when Woodson’s interception in the end zone was wiped out by a pass interference penalty. Replays showed Woodson making minimal, if any, contact with Sidney Rice(notes), but Peterson plunged in for a touchdown on the next play to make it 21-14.

Then came an eight-play, 80-yard drive that stretched the lead to 14. Favre found Bernard Berrian(notes) wide open from 31 yards for the score, but the setup was more impressive. Favre had six or seven seconds to throw, and found backup tight end Jeff Dugan(notes) for a 25-yarder.

“I didn’t expect him to do that. I thought we would play better, but obviously we didn’t,” Woodson said. “And, you know, give him a lot of credit.”

NOTES: Rodgers has been sacked 20 times this season. … Thirteen of the last 15 games in this series have been decided by seven points or fewer. … A handful of Twins players, including Joe Nathan, Jesse Crain and Delmon Young, spent their night off on the sideline. They got loud cheers when they appeared on the scoreboard. The Twins play Detroit in an AL Central tiebreaker on Tuesday.