The Bucs totaled 221 yards, gave up four sacks, committed seven penalties and nearly blew the lead at the finish.
"We call it Bucs ball," Sapp said. "It ain't always pretty. It's not much to sell tickets for. But it's a win, and they all count the same."
The difference was four interceptions and a fumbled snap by Fiedler, who left the game briefly in the second quarter with a shoulder injury.
An interception by Shelton Quarles at the end of the first half led to the first of Gramatica's three field goals. Damien Robinson made the final interception with 14 seconds left and Miami at the Tampa Bay 30.
"I take a lot of it on my shoulders," Fiedler said. "A couple of bad decisions, a couple of bad throws we kind of gave them 13 points with offensive mistakes."
The Bucs (9-5) stayed in the thick of the NFC wild-card playoff race with their sixth win in seven games. Miami (10-4) missed a chance to clinch an AFC playoff berth.
"This was a wn against a playoff team, probably the best team in the AFC," Bucs linebacker Derrick Brooks said. "We asked ourselves, `Can we go on the road against a championship-caliber team and get the win?' I think we answered that today."
Rain fell throughout the game and reduced the crowd to about 55,000, meaning there were some 20,000 no-shows for the sellout.
"Rain, soggy, nasty," said Sapp, the Bucs' Pro Bowl tackle. "It let me know I went to work today. I've got grass all over me, and I've got cuts I won't even feel until I get in the shower. It's the way football was meant to be played."
Fiedler blamed the weather, rather than his sore left shoulder, as a factor in his uncharacteristically sloppy showing. Dolphins coach Dave Wannstedt said he didn't know whether Fiedler was hampered by the injury.
"He said he was OK," Wannstedt said. "He didn't want to come out of the game. That's a tough one from a coaching standpoint. The guy says he's fine, and you want to give him an opportunity."
Fiedler, who ducked into the Florida Marlins dugout at one point to have his shoulder wrapped, finished 13-for-28 for 175 yards. He had just nine interceptions previously this season.
"I felt comfortable I could play and perform to the level I expect," he said.
But Fiedler committed three turnovers in the fourth quarter as the Bucs rallied, then held on.
They tied the score 13-13 following a wild sequence that included two third-and-long conversions, two sacks and a 45-yard pass from Shaun King to Warrick Dunn to the 1. Gramatica's 30-yard field goal tied it with 10:36 left.
As heavy rain fell, Fiedler fumbled the next snap and Duncan recovered. Three plays later, Gramatica kicked his third field goal.
"This was a typical Buccaneers win," Brooks said. "Not pretty, but it got the job done."
Fiedler hurt his shoulder when sacked by James Cannida and briefly left the game. He returned with 22 seconds left in the half after Miami forced a punt, and Wannstedt made a costly decision by electing to throw rather than run out the clock.
"I second-guessed myself on that," Wannstedt admitted. "I just should have run the football and taken it into halftime."
Quarles intercepted the first-down pass, and Gramatica kicked a 38-yard field goal as the half ended for a 10-3 lead.
©2000 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed