The Dolphins (4-5) lost for the fifth time in six games.
In its first outing since allegations of bullying engulfed the locker room in controversy, Miami rallied from a 15-0 deficit to take the lead before rookie Mike Glennon led a long touchdown drive put the Bucs ahead for good.
Bobby Rainey's 1-yard run capped an 80-yard drive, and Tampa Bay held on the final 10 minutes to win for only the second time in 15 games dating to last season.
The Bucs held fourth-quarter leads in four of their eight losses, losing each time in the final 89 seconds of regulation or overtime.
"It was rough. It was scary, I'm not going to lie," linebacker Adam Heyward said, recalling the Bucs blew a 21-point lead before losing at Seattle eight days earlier.
"It looked like last week. The guys, like Lavonte (David) and a bunch of us just said we're tired of it," Heyward added. "We can't do it again, and everybody just started stepping up and making plays."
Ryan Tannehill threw for 229 yards, including touchdowns of 6 and 19 yards to Rishard Matthews. But the second-year quarterback got no help from a running game that was limited to just 2 yards rushing.
"We didn't have any type of way to keep them off balance because we weren't able to establish the run," Dolphins coach Joe Philbin said.
Despite the loss, the game was a welcome albeit brief respite from questions about tackle Jonathan Martin's allegations of daily harassment by teammates, including suspended guard Richie Incognito.
The NFL is looking into the case, and the league's special investigator will determine whether Incognito harassed Martin, and whether the Dolphins mishandled the matter.
"We had a good week of preparation, but the performance wasn't good enough," Philbin said.
"We have good guys on this team who understand adversity and understand how to handle it," Tannehill said. "This is a good test. I'm not saying it's easy. I'm not saying it's fun to deal with. But I have faith in these guys."
Five reasons why the Bucs have their first victory, and the Dolphins continue to struggle:
STEADY GLENNON: Glennon didn't dazzle in his sixth start for Tampa Bay, but the rookie did hold his composure and throw for 139 yards and one TD. His first interception in four games a stretch 159 passing attempts led to Miami field goal, however he came right back to led his team to the go-ahead touchdown. "It feels good. Hopefully now, the second half of the season, we can really get things going," Glennon said. "We've just got to keep playing the way that we're coached, and we feel like we'll be just fine."
SLOW START: The Dolphins were outplayed for most of the first half. Tannehill brought them back, but the second-year pro missed a couple of opportunities for potential game-changing plays with poor throws, including one that wide-open receiver Mike Wallace caught out of bounds. "I have to be able to make the throw," Tannehill said.
NO RUNNING GAME: Tampa Bay set a team record for fewest rushing yards allowed, holding the Dophins to 2 yards on 14 attempts. One game after posting the first 100-yard game of his career, running back Lamar Miller carried seven times for 2 yards, with a long of 4 yards.
FOURTH QUARTER: Miami took a 19-15 lead into the fourth quarter. But the Dolphins' defense, which played better after yielding a TD on Tampa Bay's first drive of the night, struggled to stop the run down the stretch. With starter Mike James sidelined after breaking his left ankle in the first quarter, Brian Leonard finished with 57 yards and Rainey gained 45 on eight attempts.
TAMPA BAY 'D': In addition to stopping the run, the Bucs defense scored on a safety, had two sacks, and Revis intercepted Tannehill's final pass of the night a desperation throw on fourth-and-28 from the Dolphins 15. "We knew it was going to be on us. Everybody stepped up," linebacker Lavonte David said. "Right at that two-minute warning, I came in, brung the guys in and said: 'It ain't going to happen again, man. We've got to make all this stuff end right here, right now.' That's what happened."
AP NFL website: www.pro32.ap.org