The Lions (1-3) rallied from a 21-point third-quarter deficit, long after most of the starters from both teams had left the game. Theo Riddick scored on a 10-yard run and Matt Cassel threw a 3-yard TD pass to Bradley Marquez to begin the comeback.
Adam Humphries returned a missed field goal 109 yards for a touchdown for Tampa Bay, which led 20-6 at halftime.
Meanwhile, Ryan Fitzpatrick was sharp in what may have been his final tuneup for the regular season, which the Bucs will begin in two weeks without suspended quarterback Jameis Winston, who's banned three games for violating the NFL's personal conduct policy. Fitzpatrick, entering his 14th season, went 6 for 7 for 82 yards before he was replaced by Winston early in the second quarter.
Winston also worked one quarter, throwing a 10-yard TD pass to Chris Godwin and finishing 6 of 10 for 60 yards with no interceptions.
Matthew Stafford played into the third quarter for the Lions, producing a pair of field goals in his most extensive work of the preseason. Stafford, who completed 8 of 14 passes for 101 yards and was sacked three times, sat out Detroit's preseason opener at Oakland before playing three series against the New York Giants last week.
The 10th-year pro moved the Lions 69 yards in 10 plays to set up Matt Prater's 24-yard field goal, then put together a 13-play, 90-yard drive to produce another short field goal.
Humphries' field goal return came on Prater's 62-yard miss on the final play on the first half. He started up the middle of the field, cut to the right to avoid a potential tackler before turning back to his left and racing toward midfield, where he cut to his right again and into the clear.
The start of the game was delayed 59 minutes because of lightning and heavy rain. Players left the field and fans were directed to seek cover in concourses, ramps and club seat dining areas at Raymond James Stadium about 40 minutes before the scheduled 8 p.m. kickoff. When the storm cleared, the teams returned to field for player introductions and a 20-minute warmup period before the national anthem.
Lions: TE Luke Willson (knee) left in the first half and did not return.
Buccaneers: They played without three starting offensive linemen —T Donovan Smith, G Ali Marpet and G Caleb Benenoch — as well as starting DT Beau Allen and S Justin Evans. First-round draft pick DT Vita Vea, sidelined most of training camp with a calf injury, did not dress for the third straight game. LB Devante Bond (foot) and S Keith Tandy (hamstring) left during the first half and did not return.
Lions: Close the preseason at home against Cleveland next Thursday.
Buccaneers: Play final game before Winston's suspension begins, hosting Jacksonville on Thursday.