GLENDALE, Ariz. (AP) -- This time, the mistakes went in favor of Arizona, and so did the final play.
The Cardinals turned three of Cleveland's four turnovers into touchdowns, Edgerrin James topped 100 yards rushing for only the second time this season and the Cardinals held on to beat the Browns 27-21 on Sunday.
It's probably no coincidence that Arizona coach Ken Whisenhunt, Pittsburgh's offensive coordinator the last three years, knows a lot about his old division.
Derek Anderson threw for 304 yards and had two touchdown tosses, but was intercepted twice and fumbled the ball away once for the Browns (7-5), who lost for just the second time in seven games.
Two of the turnovers came on Cleveland's first two possessions and led to touchdowns that put the Cardinals ahead 14-0.
Rod Hood returned an interception 71 yards for a touchdown for the first score. On the next possession, Anderson's fumbled snap led to Warner's 5-yard TD pass to Leonard Pope.
"We turned the ball over, we muffed punts, we had penalties," said coach Romeo Crennel, whose Browns are 2-4 on the road. "We didn't do a good enough job coaching, we didn't do a good enough job playing."
The victory helped erase the lingering bitterness from last week's 37-31 overtime loss to San Francisco, a game that ended with Warner's fumble in his own end zone.
"After last week, this is kind of a cleansing win for us," Arizona coach Ken Whisenhunt said. "This certainly puts us in the right frame of mind to push forward."
James gained 114 yards on 24 carries, getting 38 of the yards on eight attempts during Arizona's drive for the final field goal. He left immediately after the game to fly to Miami for Monday's memorial service for Sean Taylor.
The Browns got a controversial 67-yard touchdown pass from Anderson to Braylon Edwards, and a 2-point conversion, to cut the lead to 21-18 on the final play of the third quarter.
A pair of late personal foul penalties damaged the Browns' chances for a final comeback.
Still, Cleveland drove to the Arizona 37 in the final seconds.
On the last play, Anderson threw to the left side of the end
zone for Kellen Winslow. The big tight end caught it, but was ruled
out of bounds. The ruling was reviewed, then upheld.
"We've lost five games by three points or less," Hood said, "so I was just praying and hoping they wouldn't overturn this call."
Anderson thought it should have been a score.
"From what I saw, he got one foot in and the guy pushed him out," Anderson said, "but there's nothing we can do about that. It shouldn't have come down to that to begin with."
"The one thing I will say is Bryant Johnson stepped up huge today and played a great football game," Warner said. "He made big play after big play. I can't say enough about him with those other two guys not being able to go."
Edwards caught seven passes for 149 yards to top 1,000 yards for the season.
The fourth Cleveland turnover came in the third quarter when Joshua Cribbs muffed a punt and Ralph Brown recovered for Arizona at the Cleveland 22.
The Cardinals scored on a third-down 1-yard pass from Warner to Johnson and went up 21-10 in the third quarter.
"I've got to look at myself in the mirror," Cribbs said. "We've got to go back at it, read up on our fundamentals and get it done."
The Browns literally flipped for their next score.
Anderson threw to Edwards, who did a somersault between two Arizona defenders, then ran the remaining 25 yards for a touchdown.
The Cardinals challenged, contending Edwards was down on contact by safety Terrence Holt, but the 67-yard touchdown play stood. Cribbs threw to Winslow for the 2-point conversion to cut the lead to 21-18.
Steve Breaston returned the subsequent kickoff 59 yards, leading to Rackers' 33-yard field goal with 12:10 to play. Breaston, a rookie out of Michigan, also figured in the final score by Arizona. He caught a 21-yard pass from Warner, then was the recipient of a late hit by Brodney Pool.
The drive stalled at the Cleveland 2, and Rackers' 19-yard field goal put the Cardinals up 27-21 with 2:10 to go.
Pope's five TD catches are the most by a Cardinals tight end for a season since Robert Awalt caught six in 1987. ... Edwards topped 1,000 yards and caught his 12th TD pass of the season. ... Arizona plays at NFC West leader Seattle next Sunday.