Josh Freeman, Tampa Bay's first-round draft pick, started, with Byron Leftwich and Luke McCown getting the night off after coach Raheem Morris settled on Leftwich as the No. 1 quarterback heading into the regular season.
The rookie was intercepted twice before giving the Bucs a glimpse of what the team is counting on to be a bright future.
Making plays with his feet, as well as his arm, the former Kansas State star led a 10-play, 74-yard drive in the final two minutes of the half, capping the march with his touchdown pass to Hankton.
"He came out a little shaky. He had to make a couple of great scrambles there, make a couple of good third-down conversions to end that thing with a two-minute drive to get us in the end zone," Morris said.
"It's what you want to see," the coach added. "You want to see these guys play better every time you go out there."
Cowboys 35, Vikings 31
At Minneapolis, The Vikings' preseason finale did nothing to help coach Brad Childress clear up his murky backup quarterback situation.
Tarvaris Jackson played well but only attempted four passes, and Sage Rosenfels threw an ugly interception in the loss to the Cowboys.
Jackson, Rosenfels and John David Booty are likely competing for two spots behind Brett Favre, with final cuts due Saturday. Jackson led two touchdown drives and was 2 for 4 for 42 yards, including a 36-yard TD pass to Jeff Dugan.
Rosenfels went 7 for 15 for 115 yards with an interception returned for a touchdown.
Cowboys coach Wade Phillips rested Tony Romo and most of his regular starters, and it showed. Dallas turned over the ball four times, leading to 21 Minnesota points.
Chargers 26, 49ers 7
At San Diego, Chargers coach Norv Turner called for an onside kick to open the game, with Antoine Cason recovering to set up Billy Volek's 39-yard touchdown pass to Kassim Osgood.
San Diego third-stringer Charlie Whitehurst threw a 15-yard TD pass to rookie tight end Kory Sperry in the closing minutes, and kicker Nate Kaeding got a good workout, connecting from 36, 47, 51 and 28 yards.
San Francisco's Jason Hill caught a 21-yard pass from third-string quarterback Nate Davis in the second quarter.
The Chargers finished the preseason 2-2, and the 49ers were 3-1.