GLENDALE, Ariz. (AP) -- Adrian Peterson rushed for two touchdowns and 134 yards in an impressive Arizona debut and the Cardinals held off a furious second-half Tampa Bay rally to beat the Buccaneers 38-33 on Sunday.
The Buccaneers (2-3) lost quarterback Jameis Winston to a right shoulder injury in the second quarter, with the Cardinals (3-3) leading 21-0.
But backup Ryan Fitzpatrick threw for 290 yards and three touchdowns to bring Tampa Bay back from a 31-0, early third-quarter deficit.
Fitzpatrick's 37-yard touchdown pass to Mike Evans cut the Arizona lead to 38-32 with 2:02 to play.
Larry Fitzgerald recovered the onside kick and, with no Tampa Bay timeouts remaining, the Cardinals ran out the clock.
Carson Palmer completed his first 14 passes and finished 18 of 22 for 283 yards and three touchdowns with one interception. Fitzgerald caught 10 passes for 138 yards and a score.
Peterson, acquired in a trade with New Orleans on Tuesday, carried 26 times and scored on a 27-yard run to cap Arizona's first possession. He added a 1-yard TD run after Tramon Williams' interception near the goal line in the fourth quarter.
The 32-year-old running back gained 47 more yards on Sunday than the 87 he had in four games with the Saints. Arizona ran for 160 yards after averaging 52 yards rushing through five games, by far the worst in the league. Of course, they are without the versatile but injured David Johnson.
Peterson had a 45-yard run called back because of an illegal use of hands penalty. On the next play, Fitzgerald fumbled and Lavonte David returned it 21 yards for a touchdown. The 2wo-point conversion cut the Arizona lead to 31-20 with 12:56 to play.
The Cardinals opened the game with touchdown drives of 76, 86 and 95 yards, the first time they've started with three consecutive TDs since 2006, when Kurt Warner was at the controls.
On the game's first play, Peterson gained 8 yards. He followed with runs of 8 and 11 yards, then broke free over the left side for a 27-yard touchdown run.
On the next drive, Palmer threw 29 yards to Fitzgerald and Peterson had an 11-yard run to the Tampa Bay 14 before the Arizona quarterback connected on a 14-yard TD pass to tight end Troy Niklas.
The third touchdown drive was kept alive by an offside penalty against the Buccaneers on third down, Palmer throwing 11 yards to Fitzgerald for a touchdown to put Arizona up 21-0.
The Cardinals led 24-0 at the half. Palmer's 17-yard TD pass to John Brown made it 31-0.
Buccaneers: Winston left the field early in the second quarter holding his right arm limp after throwing three consecutive incomplete passes.
Cardinals: Cornerback Patrick Peterson left with a quadriceps injury in the fourth quarter. Defensive lineman Xavier Williams left with a knee injury in the third quarter.
Buccaneers: Tampa Bay plays at Buffalo next Sunday.
Cardinals: Arizona leaves Monday for London, where it will face the Los Angeles Rams next Sunday.