What the Bucs' struggling offense giveth, its tenacious defense taketh away.
The Bucs forced four turnovers to overcome three of their own and outlast the Green Bay Packers, 30-21, in a game that finally forced Tampa Bay coach Jon Gruden to run the ball because something bad seemed to happen every time Brian Griese threw it.
"At the end of the day, it was an important win against a good football team," Gruden said. "It was a strange game."
The Bucs' last two drives, which produced 10 points after they had fallen behind 21-20, featured 12 plays and all of them were runs.
Earnest Graham scored on a 2-yard touchdown run to give the Bucs (3-1) a 30-21 lead with less than two minutes to play and essentially seal their third straight victory.
Graham broke through the line and ran 46 yards on first down after Aaron Rodgers' third interception, then scored on the next play with 1:56 remaining in the game.
Graham finished with 111 yards on 20 carries. Warrick Dunn added 63 yards on 16 attempts.
Matt Bryant's third field goal, from 24 yards out, gave the Bucs a 23-21 lead. The kick came after the Bucs went 30 yards in 10 plays, all runs, and took 6:04 off the clock.
Bryant's infant son Matthew Tryson died suddenly on Wednesday. The funeral was Saturday in Texas. He was perfect on three field goal attempts on Sunday.
"I wanted to honor Tryson's name," Bryant said. "He was here, with me. Today was his day. It was all about him with me."
Charles Woodson turned Brian Griese's third interception into a 62-yard touchdown that gave the Packers (2-2) a 21-20 lead early in the fourth quarter. This despite the fact that Green Bay had just eight first downs in the game.
The Packers scored two touchdowns in less than five minutes after the Bucs took a 20-7 lead in the third quarter.
Woodson stepped in front of a pass intended for Warrick Dunn and returned the ball diagonally across the field into the right corner of the end zone, holding the ball aloft as he crossed the goal line with 13:43 remaining in the game.
At that point, Griese 12-of-26 passing for 112 yards with one TD and three interceptions. He finished 15-of-30 for 149 yards, one touchdown and the three big interceptions.
Rodgers fared just a little better for the Packers, completing 14-of-27 for 165 yards, two touchdowns and three interceptions. He left the game for one series with a shoulder injury in the fourth quarter.
Greg Jennings caught his second touchdown pass, a 48-yarder from Rodgers, to bring the Packers within 20-14 late in the third quarter.
Jennings got behind Jermaine Phillips and was wide open for the score with 1:46 remaining in the third quarter. Phillips made a diving effort to catch Jennings, who coasted in for the touchdown moments after the Buccaneers had opened a 13-point advantage.
Matt Flynn replaced Rodgers with 9:40 left to play. Officials said Rodgers was kept out as a coach's decision and could return. Rodgers re-entered for Green Bay with 2:24 remaining and was ineffective under heavy Bucs pressure.
His first pass fell incomplete as he threw under heavy pressure from Gaines Adams. His next was intercepted by Gaines as Greg White applied the pressure, hitting Rodgers just as he released the ball.
Phillips scooped up a fumble and raced 38 yards for a touchdown that gave the Bucs a 20-7 lead. Tampa Bay reeled off 20 straight points after the Packers scored on their first possession.
Linebacker Derrick Brooks hit Packers running back Ryan Grant and forced the fumble, which Phillips picked up and ran untouched into the end zone with 6:00 to play in the third quarter.
It was Tampa Bay's third defensive touchdown in four games this season, and Phillips' first career TD.
Matt Bryant kicked a 37-yard field goal to give the Buccaneers a 13-7 halftime lead.
Bryant's second field goal, with 1:07 left before halftime, came after Rodgers' second interception of the game, this one by Barrett Ruud. Ruud returned his pick 10 yards to the Packers 45-yard line.
Bryant kicked a 23-yard field goal to give the Buccaneers their first lead, 10-7, earlier in the second quarter.
Bryant no trouble with the short field goal with 6:43 left before halftime after the Bucs moved 36 yards in eight plays.
The biggest play of that drive was a 17-yard gain by Warrick Dunn on a short pass from Brian Griese that Dunn took to the Packers 11-yard line.
Alex Smith caught a nine-yard touchdown pass from Griese as the Bucs pulled even with the Packers, 7-7, in the second quarter.
The Bucs' first score was set by an interception by Brooks on the first play of the second quarter. Brooks caught a tipped pass from Rodgers and pitched the ball to teammate Cato June, who carried it an extra yard to the Packers 32-yard line.
The interceptions were the first of the season for Rodgers, who replaced Brett Favre as the Packers starting quarterback this season.
Griese completed two passes to cover the final 22 yards, finding Antonio Bryant for 13 yards and then hitting Smith for the tying score with 12:09 left in the second quarter.
Jennings caught a 25-yard touchdown pass from Rodgers as the Packers scored on their first drive of the game to take a 7-0 lead.
The Packers moved the ball 58 yards on 10 plays, including a fourth-down quarterback sneak near midfield by Rodgers to keep the drive alive.
Rodgers then found Jennings wide open behind Aquib Talib down the left sideline for the score with 10:24 left in the first quarter.
The Bucs defense shut down Grant in the first half, holding him to 20 yards on 11 carries. Rodgers was 9-of-19 for 112 yards at the intermission and he was sacked three times.
One of those sacks was by Ruud, who has been one of the best linebackers in the league so far this season. It was the first career sack for Ruud, who made his first interception last week against Chicago.
Tampa Bay failed to get a first down on its first possession, after which Josh Bidwell punted the ball into the end zone on a 64-yard boot. The Bucs had just 24 yards of total offense in the first quarter, when Griese was 2-of-6 passing for 9 yards.
The Bucs started Michael Clayton and Bryant in place of the injured Joey Galloway at wide receiver. Rookie Jeremy Zuttah again started at right guard as the Bucs opted to keep Davin Joseph on the sidelines for at least one more game.