GREEN BAY, Wis. -- Aaron Rodgers missed a few more throws than he usually does, and even threw an interception with the game still in doubt.

He just wasn't at his best against the Tampa Bay Buccaneers Sunday -- until he absolutely had to be.

With the Packers clinging to a two-point lead and trying to fend off a late rally, Rodgers threw a 40-yard touchdown to Jordy Nelson with 2:55 left and the Packers survived a scare from the Bucs for a 35-26 win.

With a 10-0 record going into a Thanksgiving Day game at Detroit, the Packers remain perfect, even if their quarterback walked away expecting much more from himself. Rodgers threw for 299 yards with three TDs, including a pair to Nelson, but wasn't happy with the way he played. "I'm just frustrated," Rodgers said. "I didn't throw the ball very well. I'm not trying to be ridiculously humble right now, I'm just frustrated. The ball wasn't coming out the way I wanted it to today."

The Packers' defense also had trouble stopping quarterback Josh Freeman and tackling running back LeGarrette Blount, giving Packers coach Mike McCarthy plenty of mistakes to point out going into what will be a much-hyped matchup with the Lions.

"I think it was great for us," McCarthy said. "Adversity is awesome. We're getting ready to play a big game on national TV on Thanksgiving, and adversity [offers] healthy situations to learn from. Especially when you overcome it."

Freeman threw for 342 yards with two TDs and two interceptions for the Bucs (4-6), who have lost four straight.

Blount had 107 yards rushing for Tampa Bay, including a rambling 54-yard touchdown run in the second quarter where he broke at least six tackles.

Tight end Tom Crabtree caught a touchdown from Rodgers and John Kuhn added a rushing touchdown. The Packers got their first score of the afternoon on a run by 337-pound defensive lineman B.J. Raji.

SUBSCRIBE

Unlimited Digital AccessOnly 25¢for 6 months

ACT NOWSALE ENDS SOON | CANCEL ANYTIME