The patience was rewarded Sunday in the Bucs' 38-24 win over the Minnesota Vikings.

Playing with broken ribs, Brad Johnson passed for 313 yards and a career-high five touchdowns, tying a team record held by Steve DeBerg since 1987. Two TDs were to Keyshawn Johnson, who caught nine passes for 133 yards.

The Bucs improved to 7-2, tying the best start in team history and giving Tampa Bay a half-game lead over idle New Orleans in the NFC South.

Tampa Bay ended a streak of eight quarters without an offensive touchdown by scoring on its first four possessions to build a 24-0 lead in the second quarter.

"That's the kind of guy I want on my team. A dinosaur," defensive tackle Warren Sapp said of Brad Johnson. "The old school. They didn't throw picks in the old school. They put their teams in great positions and took the hits and come back to work and can't wait for a chance to get back out there and win.

"We've got it going right now; we're going to keep it going, and he's the one who's going to lead us."

Only some uncharacteristic lapses by the defense kept the game from being over by halftime. Tampa Bay seemed so giddy over its offense that it forgot how to tackle.

The Vikings rolled up 393 yards on the NFL's No. 1 defense, thanks in part to an 85-yard touchdown run by Michael Bennett.

"I was sitting there cheering on the sideline for our offense but at the same time, I was ticked off we were giving up big plays," Derrick Brooks said.

Vikings quarterback Daunte Culpepper completed 19 of 31 passes for 231 yards, setting up two 1-yard touchdown runs by Mo Williams. But the Bucs sacked him three times and intercepted him twice.

"It was a little sloppy," cornerback Ronde Barber said. "It was one of those games, man, it's like every time we play Minnesota. It's never anything that they do, it's stuff that we do. We missed tackles, a guy goes (85) yards. We break down in coverage and they hit a deep dig (route) or something."

It didn't matter because the Vikings never really were in the game.

Vikings rookie Nick Davis fumbled the opening kickoff when he was hit by linebacker Jack Golden, and the ball was recovered by Jermaine Phillips at the Minnesota 21.

Three plays later, Brad Johnson threaded a pass to Karl Williams for a 15-yard touchdown, and the rout was on with 1:48 gone. It was the 100th TD pass for the 33-year-old Johnson, who kept the football.

"I've always said all it takes is for one guy to step up and a chain reaction would happen," said Williams, who started for injured flankers Keenan McCardell and Joe Jurevicius. "That's how our offense is. We have so many weapons on this offense that once you see one guy making a play, everybody else seems to get involved in the offense."

Nobody was more involved than Keyshawn Johnson. After not catching a pass until the final minute in the Bucs' 12-9 win Oct. 27 at Carolina, Johnson met Monday with Gruden, who promised to find creative ways to get him open.

"I had to take a sleeping pill last night," Johnson said, not hiding his excitement.

Sunday, Johnson was constantly in motion and lined up in various spots, even in the backfield.

"I just haven't been one of those guys who's been stationary throughout my career," he said. "For some reason, it makes a difference in the way I practice and the way I play. Maybe I get a little relaxed and bored out there, disinterested knowing I'm (not) going to have an opportunity to catch many balls. Even though I keep playing, it's still one of those things where it's a little disinteresting."

He kept it lively against the Vikings' 31st-rated pass defense. After his second TD, he heaved the football into Section 213 on the west side of Raymond James Stadium.

The offensive line did a great job protecting Brad Johnson and his ribs.

"He doesn't have the strongest arm in the NFL, so he needs time to step into his throws," Keyshawn Johnson said. "If he can't step into his throws, he can't get the ball off and it's an incomplete pass. But he was able to step into his throws today, which was cool."

Now Brad Johnson will have extra time to heal his ribs. The Bucs enter the bye week with confidence on offense.

"It's probably as impressive a start as we've had," Barber said. "There's some big momentum going into the bye week and starting the second half of your season with seven wins."

Who knows? Given more time, Brad Johnson and Keyshawn Johnson might develop into a pretty good combination.

"Oh, they pitch and catch with the best of them," Sapp said. "That's Johnson and Johnson."