SEATTLE — Carson Palmer had two balls stripped from his hands, one that led to a Seattle touchdown and another that was returned for a score that left the Seahawks' home field shaking.
Their 19-point lead gone and their 35-year-old quarterback seemingly unraveling under a fierce pass rush, the Arizona Cardinals had reason for concern.
They didn't show it, regrouping to shove aside the Seahawks and take full control in the NFC West.
"Carson is a vet. He's been through ups and downs," teammate Larry Fitzgerald said. "He's been through every scenario you can think of as an NFL quarterback and he's got unbelievable confidence in his ability."
Palmer threw for 363 yards and three touchdowns, Andre Ellington had a 48-yard touchdown run with 1:58 left and the Cardinals beat the Seahawks 39-32 on Sunday night to open a three-game lead in the NFC West.
Palmer helped the Cardinals (7-2) build leads of 19-0 and 22-7 at halftime, only to watch Seattle (4-5) rally to take a 29-25 lead early in the fourth quarter on Bobby Wagner's 22-yard fumble return.
Undaunted by losing the lead, Palmer led the Cardinals on an 83-yard touchdown drive, capped by a 14-yard strike to Jermaine Gresham with 8:41 remaining. The Cardinals held Seattle on its next possession and Ellington added the punctuation, sprinting down the sideline on a third-down run to cap Arizona's big night.
"Just on to the next, but it shows that we're here and we mean business," Arizona safety Deone Bucannon said. "Seattle is a fantastic team. It just let's everyone know that we're here."
A year ago Palmer was a spectator and watched the Cardinals crumble down the stretch after he was lost to a season-ending knee injury. On Sunday night, he was leading the Cardinals to their second win in Seattle in three years and quieting critics who said Arizona's fast start was a mirage of fortunate scheduling.
Arizona still has games remaining against Seattle and St. Louis but has a hefty cushion with only seven weeks left in the regular season.
"This team has the character we had last year," Arizona coach Bruce Arians said. "But we're healthy."
Fitzgerald had 10 catches for 130 yards, his most receptions since Week 14 of 2013, and Michael Floyd had two big touchdown receptions in the first half. The 39 points were the most allowed by Seattle since giving up 40 to San Francisco in Week 14 of the 2010 season.
"We're a gutsy team, we're a tough team," Palmer said. "Tough teams overcome one player's mistakes and move on."
After watching Seattle run off 29 of 35 points and committing two costly turnovers deep in their own end, the Cardinals responded with a 10-play, 83-yard drive to retake the lead midway through the fourth quarter. The Cardinals were aided by a huge third-down illegal contact penalty against Bobby Wagner to keep the drive alive and Jaron Brown catching a tipped pass that Richard Sherman nearly intercepted. Palmer's strike to Gresham gave Arizona a 32-29 lead and the cushion was pushed to 10 after Ellington's TD run.
The Seahawks got a 46-yard field goal from Steven Hauschka with 58 seconds left to make it a one-possession game, but Fitzgerald recovered the onside kick and Arizona celebrated.
Arizona built leads of 19-0 in the second quarter and 22-7 at halftime, capitalizing on Seattle's inefficiency and mistakes on offense, and hitting big plays against the Seahawks vaunted defense. Floyd had two fantastic touchdown receptions, the first sneaking behind Richard Sherman and tapping his toes for a 27-yard TD and later a 35-yard catch-and-run touchdown, plowing over the pylon to cap a 19-point run in less than 9 minutes.
Arizona also managed watching offensive lineman Mike Iupati taken off the field on a stretcher in the first half with a neck injury and loaded into an ambulance. Iupati was cleared to return with the team to Phoenix after the game following tests at a hospital.
Seattle got the break it needed on the second play of the fourth quarter when Cliff Avril came unblocked off the edge and sacked Palmer, knocking the ball free. K.J. Wright was ruled down at the 3 after the recovery and Marshawn Lynch bulled his way in for his third touchdown of the season on the next play. Russell Wilson's 2-point conversion pass was incomplete and Seattle trailed 25-23 with 14:44 left.
And almost immediately after the Seahawks were done celebrating Lynch's score, Seattle was in the lead thanks to another sack and fumble. This time it was Wright coming unblocked to knock the ball free. Wagner scooped the fumble and returned it 22 yards for his second touchdown of the season and a 29-25 Seattle lead with 13 minutes left.
But for the fourth time this season, Seattle was unable to hold a lead in the final quarter.
"We had them, we had a chance to win the football game we just didn't hold the lead there," Carroll said.
NOTES: Wilson was 14 of 32 for 240 yards, one touchdown and one interception. ... Arizona had 30 total first downs, the most against Seattle in regular season since 2010. ... Seattle committed a season-high 14 penalties. ... Arizona hosts unbeaten Cincinnati next Sunday.