Johnson made his first start of the season for Tampa Bay and was harrassed by Carolina's stifling defense. He was sacked six times and had trouble moving the ball until the Buccaneers' final drive.
Tampa Bay started the winning march on its own 27 with just 80 seconds left. Johnson completed three passes -- including two to Keyshawn Johnson -- as the Buccaneers moved to the Carolina 39.
After a delay of game penalty, Rob Johnson strained his right knee on a nine-yard run before going out of bounds at the 35. Shaun King then entered and threw a seven-yard pass to Karl Williams to set up Gramatica's game-winning kick.
"Rob took a hit on the sideline and Shaun King came in that situation and made that play," Tampa Bay coach Jon Gruden said. "Rob made some key plays on the drive. The bottom line is we did enough with (the ball) to get Gramatica in position."
"That's what I'm here to do," Gramatica said. "It's hard to describe that situation with the game on the line."
Johnson completed 22 of 33 passes for 179 yards with an interception. He was unable to find the end zone, leaving Tampa Bay without a touchdown in nine quarters.
"It was an ugly game to watch and an ugly game to play," Johnson said. "One field goal was enough to win. We'll take the win and get out of here. When you get a game like that, the most important thing is winning."
Carolina rookie Randy Fasani was just five of 18 for 46 yards and three interceptions in his first NFL start. Lamar Smith rushed for 82 yards on 22 carries as the Panthers (3-5) lost their fifth straight following a 3-0 start.
Carolina entered with the NFL's fourth best defense and held Tampa Bay to just 255 yards, including only 70 rushing yards.
"Our defense has been outstanding all year," Panthers Coach John Fox said. "When you hold a team under 17 points in the NFL, you should expect to win 70 percent of the time. We have to work to that."
But Carolina only managed 130 yards as Fasani, a fifth-round pick out of Stanford, struggled against the NFL's top-rated defense.
"I didn't play that well. I expect more of myself," Fasani said. "Granted it was a tough team to play against my first start. Their defense really played well. We were just trying to grind the ball."
Tampa Bay is tied atop the NFC South with New Orleans, which lost to Atlanta on Sunday.
"He tried to catch the punt, he was in position, and he didn't," Fox said. "We've played some pretty good teams, we just don't have much margin for error. We're working to improve that."
The Buccaneers were unable to pick up a first down but gained enough yards to set up Gramatica's game-tying 53-yard field goal -- his longest of the season -- with 1:55 to go.
Carolina went three-and-out on the ensuing drive and was forced to punt with 1:27 to go.
"It's going to take four quarters of playing," Jenkins said. "Every little bit counts. Sometimes you don't take care of the little things. If we don't, then we're going to lose."