Tampa Bay came in having scored just five touchdowns in its last four games, failing to get in the end zone last week against Carolina with Rob Johnson at the controls.
Despite his team winning three of those games, Coach Jon Gruden had been criticized for failing to generate more offense.
"I'm not going to comment on how we played against Philadelphia (a 20-10 loss) or Carolina (a 12-9 win)," Gruden said. "But I'll tell you this, we're gonna work hard to put together a team that's competitive."'
The defenseless Vikings (2-6) had allowed an average of 27 points per game this season and put up very little fight. They wasted no time letting Tampa Bay's offense get comfortable, committing one of their three turnovers on the game's first play.
"The biggest thing today was scoring on the opening kickoff," Brad Johnson said. "That set the tone for us."
"To start with a turnover really set us back," Vikings coach Mike Tice said.
Returning from a cracked rib, Brad Johnson completed 24 of 31 passes for 313 yards, his fifth career 300-yard game. The former Viking also threw touchdown passes to Karl Williams, Ricky Dudley and Mike Alstott to tie a club record.
"We needed a breakout day," Williams said. "We have a lot of weapons on this team and it only takes one guy to step in and make a play. It sparks a chain reaction."
Keyshawn Johnson caught nine passes for 133 yards and two scores, tripling his season touchdown total. Williams had four catches for 49 yards for Tampa Bay (7-2), which has won its last three home meetings with Minnesota by a combined score of 120-51.
"I'm not the guy who calls plays," said Keyshawn Johnson, who has asked Gruden for a bigger role in the offense. "I'm not the quarterback. I'm not an offensive lineman. The only thing I try to do is make plays anytime the ball is delievered to me."
"This was a big day for us," Brad Johnson said. "We'd been struggling a little bit on offense but we'd been playing good defense the last six or seven weeks."
After holding five of its last six foes without an offensive touchdown, Tampa Bay's defense bent a bit. But it kept Randy Moss out of the end zone and twice picked off Daunte Culpepper, running its league-leading interception total to 18.
"When you can take away Randy Moss' big-play, big-strike capability, you're gonna have a chance against Minnesota," Gruden said.
Tampa Bay is off to its best start since 1979, when it reached the NFC championship game. It heads to a bye week before returning against slumping Carolina.
The Vikings have not won a road game since Thankstiving Day, 2000 at Dallas. They are eight shy of the NFL record for consecutive road losses set by the Houston Oilers from 1981-84.
Nick Davis fumbled the opening kickoff and the Bucs recovered on the Vikings' 21. Three plays later, Brad Johnson hit Williams with a 15-yard scoring pass.
After Moss had a touchdown catch wiped out by a holding penalty, Brad Johnson found Keyshawn Johnson for 13 and 26 yards and Ken Dilger for 18 yards. The 86-yard drive was capped by his two-yard toss to Dudley that made it 14-0 late in the first quarter.
A 15-yard catch by Keyshawn Johnson set up Martin Gramatica's 36-yard field goal early in the second quarter. After another punt by Minnesota, Aaron Stecker rumbled 59 yards on his only carry to set up Brad Johnson's two-yard touchdown pass to Keyshawn Johnson for a 24-0 lead with 7:16 left in the first half.
"I was disappointed by the play of the secondary," Tice said.
The Vikings finally broke through as Michael Bennett raced 85 yards for a touchdown, the longest run in franchise history. After Gramatica missed a 40-yarder, Gary Anderson booted a 26-yarder on the final play of the half.
In the third quarter, Dilger got loose down the middle for a 40-yard catch and Keyshawn Johnson had a pair of 19-yard receptions, the second a leaping grab for a touchdown that made it 31-10.
"We knew that they were gonna play bump-and-run a lot," Brad Johnson said. "Keyshawn came up big. He had a tremendous catch on his second touchdown."
The Vikings answered on the first of two touchdown runs by Moe Williams. They were still in the game when they recovered an onside kick. But on the next play, Culpepper was chased out of the pocket and threw a weak pass that was intercepted by defensive lineman Warren Sapp.
"I've been trying to do too much on those types of plays," Culpepper said.
A 17-yard pass to KeyShawn Johnson set up Alstott's five-yard touchdown catch that made it 38-17 with 13:34 to play. Dilger recovered another onside kick after Williams' second score with 4:40 left.
Culpepper was 19 of 31 for 231 yards, Bennett had 114 yards on 10 carries and Moss had four catches for 41 yards for the Vikings, who have lost five straight visits to Tampa Bay.