The Green Bay Packers found a way to keep Colin Kaepernick in the pocket and stop all those read-options runs that embarrassed them in the playoffs.
They just had no answer for his arm.
Or his newest receiver.
Kaepernick threw for a career-high 412 yards and three touchdowns to outduel Aaron Rodgers, and the San Francisco 49ers held off the Packers 34-28 on Sunday in the season opener for both teams.
"It's disappointing when we play our best game on offense and we got to score more points," Rodgers said.
Rodgers threw for 333 yards and three touchdowns with one interception. Jordy Nelson caught seven passes for 130 yards, and Randall Cobb had seven for 108 yards.
The Packers lost to the 49ers for the third time in a year — and eight months after that 45-31 defeat in a playoff game at Candlestick Park.
Anquan Boldin caught 13 passes for 208 yards and a touchdown in his 49ers debut after coming over in a trade from the Super Bowl champion Baltimore Ravens in the offseason.
Tight end Vernon Davis had six catches for 98 yards and two touchdowns. And San Francisco finished with 494 yards of total offense.
"We gave up too many big plays," linebacker Clay Matthews said. "Got to give credit to the quarterback for making the plays he needed to. I thought we did a good job of keeping him contained and not letting him extend plays similar to what he did in the playoff game. But he still made plays."
Frank Gore scored a go-ahead, 1-yard touchdown with 5:47 remaining as the 49ers made it three straight against Rodgers and Co., including a win at Green Bay to open last season.
Kaepernick led his team 80 yards on five plays to take the lead. The 49ers answered after Packers rookie Eddie Lacy put Green Bay ahead on a 2-yard run with 8:26 left.
Lacy, the former Alabama star drafted to boost a lackluster Green Bay running game, carried 14 times for 41 yards. In the end, his fumble proved pivotal.
"I want to put that one mistake behind me and continue to progress," Lacy said. "We have a long season and I have a long season to get better and better."
One thing is clear: San Francisco is just better than Green Bay right now.
And has been for the past year, no matter the roster.
With top wide receiver Michael Crabtree injured, Boldin came up big all afternoon on a sun-drenched day by the bay.
He came back from an apparent twisted right knee early in the fourth quarter to deliver a 43-yard catch in the decisive drive and also converted on fourth down with a 15-yard catch that set up Phil Dawson's late 33-yard field goal.
Standout rookies, stellar debuts, ill will — this one had it all. In a picture-perfect setting as Candlestick Park kicked off its farewell season.
In this fierce rivalry between a pair of NFC favorites, Matthews made his point, too. The Packers promised to target Kaepernick, but they likely meant for it to be inbounds — not the way Matthews did it.
Matthews had a hit out of bounds on Kaepernick midway through the second quarter, and 49ers left tackle Joe Staley made contact with Matthews after the play and received an unsportsmanlike conduct penalty after both teams scuffled near the sideline.
"First off, it wasn't a very smart play," Matthews said. "I'd already committed to hitting the quarterback. I guess I should've figured he was going to step out of bounds. But it's nothing personal. I went up to him later and was joking around with him. Not a very smart play."
Officials mistakenly replayed the down.
San Francisco took the lead on that play when Kaepernick found Boldin for a 10-yard touchdown. Had it been fourth down, the Niners might have tried a field goal.
"The down should have counted," referee Bill Leavy said after the game. "The penalties were both dead ball, and they should have offset at the spot where the runner went out of bounds. And it would have been fourth down."