Johnson threw two touchdown passes, overcoming his first interception since Dec. 1 as well as a laceration over his right eye that briefly forced him to the locker room so doctors could close the wound.
Tampa Bay's No. 1-ranked defense, meanwhile, forced four turnovers, the last of them coming with 2:20 remaining in the third period that ended San Francisco's faint hopes of pulling off its second straight amazing comeback.
The Buccaneers will play in their third NFC Championship game next Sunday when they meet the Philadelphia Eagles at Veterans Stadium, where Tampa Bay's last two seasons have ended with losses in the wild card round.
"We have some demons up there that would be nice to erase," said Tampa Bay cornerback Ronde Barber.
Tampa Bay scored just six points in its two previous trips to the conference title game, symbolic of its offensive struggles in the playoffs, and had not scored a touchdown in its last three post-season contests.
But the Buccaneers proved relentless in the first half Sunday against an injury-riddled San Francisco defense. The 31 points were 11 more than Tampa Bay had ever scored in a playoff game.
Johnson was intercepted on Tampa Bay's first possession, the first he had suffered in 88 passes dating to a loss to the New Orleans Saints in the 13th week of the regular season.
Johnson, however, led the Buccaneers to touchdowns on four of their next five possessions en route to a 28-6 halftime lead.
Tampa Bay marched 74 yards in 12 plays for the game's first touchdown, coming on a two-yard run by Mike Alstott with 5:16 remaining in the first period. Johnson then finished off a 77-yard march with a 20-yard scoring pass to Joe Jurevicius.
A 12-yard touchdown pass from Johnson to Rickey Dudley midway through the second period gave Tampa Bay a 21-6 lead and came two plays after one of San Francisco's many miscues -- a 36-yard interference penalty called on safety Tony Parrish as he tried to cover Jurevicius.
The first-half onslaught came to an end when Alstott bulled in from the one-yard line with 50 seconds remaining, a touchdown set up by an interception by linebacker Derrick Brooks.
During the opening two quarters, Tampa Bay gained 217 yards to San Francisco's 94 and ran 43 plays to the 49ers' 21. The Buccaneers converted eight of 10 third downs in the first half.
"It was as good a performance the first 25 or 30 minutes as we've had all season," said Oakland Coach Jon Gruden.
Needing a quick start in the second half to make a game of it, San Francisco turned the ball over on the opening play of the third quarter when a Jeff Garcia pass was picked off by Dwight Smith.
That led to a 19-yard field goal by Martin Gramatica, the only points produced by either team in the second half.
The only San Francisco scores came on field goals of 24 and 40 yards by Jeff Chandler.
Johnson completed 15 of 31 passes for 196 yards. The Tampa Bay quarterback had to make a brief exit in the third period when he took a blow to the head while scrambling for a five-yard run. Blood came flowing out of a gash on his forehead and he headed for the locker room to get patched up.
As Johnson left the field, the fans at Raymond James Stadium gave him a huge ovation and he responded by pumping his fist into the air time and again.
"This is why I came to Tampa Bay for this moment right here," Johnson said. "One of us is going to the Super Bowl and I hope it is us."
Johnson showed no ill effects from a back injury that sidelined him for the last two games of the season.
"I felt great," said Johnson, who last played on Dec. 15. "We worked all season to get to this point and we had a great game plan today and executed it."
"Now you guys know how valuable he is to our team," Jurevicius said of Johnson. "We always knew it. He's one tough guy. He did an unbelievable job dispersing the ball today to tight ends, to running backs, to receivers. It just shows you what can be done if we continue that trend."
Garcia, who brought the 49ers back from a 24-point deficit to an improbable victory in the wild card round last week against the New York Giants, was 22 of 41 for 149 yards and three interceptions.
Flamboyant San Francisco receiver Terrell Owens was a non-factor, catching four passes for 35 yards.
It was the sixth time this season the Buccaneers have held an opponent without a touchdown.
"They capitalized on our turnovers and were certainly the better team today," said San Francisco Coach Steve Mariucci.
San Francisco's shaky secondary could not solve Tampa Bay's intermediate passing game. The 49ers started the game without right cornerback Jason Webster, who was sidelined with a sprained ankle, and lost left cornerback Ahmed Plummer in the first quarter with a dislocated right shoulder.
"We didn't change the scheme when he (Plummer) got hurt," linebacker Julian Peterson said. "We expect whoever comes in to fill in and execute."