CHARLOTTE, N.C. -- By running over, around and through one of the league's top defenses, the Carolina Panthers staked their claim as one of the NFL's top teams.
Williams rushed for a career-high 186 yards and two touchdowns, Stewart added 115 yards and two more scores and the Panthers set a team record for yards rushing for the second time in a month.
And this time it was against the NFL's fourth-rated defense that came in having allowed only one rushing TD all season.
The Panthers (10-3) avenged their worst loss of the season and grabbed the top spot in the division, moving one game ahead of the Buccaneers (9-4).
"People remember what you do in December," Panthers coach John Fox said. "This was a big stage and I like the way our guys met that challenge."
The Monday nighter featuring the top teams in the NFC South was billed as a chance for the division to emerge from the shadow of the tough NFC East.
The overlooked contenders played even through three quarters, before the Panthers wore down the Buccaneers' highly regarded defense in the final period behind their emerging stars in the backfield.
"Those guys are that good," said coach Jon Gruden, whose Bucs had their four-game winning streak snapped. "Those guys are going to make guys miss. Both of them."
Steve Smith added nine catches for 117 yards and a touchdown, and the Panthers overcame Jake Delhomme's two interceptions behind their dominating ground game, an area Carolina targeted in the offseason by drafting Stewart and overhauling its offensive line.
"It's kind of what we're built around," Fox said. "I think we got bigger and more physical up front and both of those back are pretty special."
They powered the Panthers within a game of the New York Giants for the best record in the NFC. At the Giants in two weeks, the Panthers -- yes the Panthers -- hold their own destiny for the No. 1 seed in the playoffs.
The Buccaneers wasted a career day from Antonio Bryant, who caught nine passes for 200 yards and two touchdowns, including an outstanding one-handed TD grab with 2:29 left.
Matt Bryant's extra-point attempt after Antonio Bryant's final score was blocked by Julius Peppers. The Panthers then recovered the onside kick, and Williams scored his 13th touchdown -- breaking Stephen Davis' single-season team record -- to put it away.
"The O-line and the fullback did an outstanding job blocking for us today," Williams said. "They did an outstanding job getting us to the second level."
It was a frustrating night for the Bucs, who roughed up Carolina 27-3 in October -- holding Carolina to 40 yards rushing. A win would have given them control of the division.
Instead, their offense couldn't keep up. Jeff Garcia lost to Carolina for the first time in six starts despite throwing for 321 yards and two touchdowns. Garcia was sacked five times.
"Our defense has bailed us out so often this season," Garcia said. "This was one of those nights were offensively we needed to be better."
In his first game back in Carolina since suffering a career-threatening knee injury 14 months ago, Carnell "Cadillac" Williams had a 4-yard touchdown run late in the third quarter to tie it at 17.
DeAngelo Williams and Stewart then took over.
Stewart rumbled over tackles for an 18-yard gain before his 4-yard TD run with 13:21 left put the Panthers ahead to stay.
After Peppers sacked Garcia to end the Buccaneers' next drive, Williams and Stewart dazzled.
Williams gained 41 yards, Stewart picked up 3 and 30, and then Williams raced 16 yards for the decisive four-play TD drive.
"Some of the plays were plays we'd seen before," Bucs linebacker Derrick Brooks said. "They did a good job of blocking us this time. I've got to give them credit for breaking tackles and making us miss."
Williams became only the third player in Carolina's 14-year history to surpass 1,000 yards rushing in a season when he rumbled 40 yards up the middle. That set up Stewart's 2-yard TD run with 1:56 left before halftime that gave Carolina a 10-3 lead.
Carolina finished with 299 yards rushing, surpassing the team-record 264 it had last month against Detroit. The total was only 7 yards shy of the most allowed by Tampa Bay.
"It is embarrassing, definitely," linebacker Barrett Ruud said. "Especially since you don't get many opportunities to have that national audience and this was by far our worst game."
Tampa Bay extended its streak of not scoring a first-quarter TD to six games. ... Stewart's two TDs gave him eight, breaking the Panthers' single-season record for rookies held by the late Fred Lane. ... Bucs DT Jovan Haye (knee) did not play, replaced by Ryan Sims in the starting lineup.