ST. LOUIS -- No way Patrick Peterson thought he'd get another chance to return a punt for the Cardinals against St. Louis.

Peterson tied the NFL record with his fourth punt return for a touchdown this season, three weeks after his 99-yarder in overtime beat the Rams, and Arizona won its seventh in a row in St. Louis with a 23-20 victory Sunday.

"I was actually very, very surprised," Peterson said. "I just told the guys to be patient, that we'd get one sooner or later."

Teammate Beanie Wells was seeking redemption, not a franchise record, after his fumble led to the Rams tying the score. He set the mark for the Cardinals with 228 yards rushing on 27 carries, including gains of 71 and 53 yards. The latter set up Jay Feely's go-ahead 22-yard field goal with 4:12 remaining on the possession after his turnover.

Wells aggravated a lingering right knee injury on the fumble but couldn't wait to get back out there. He set the record with a 14-yard gain to the Rams 34 on the game's next to last play, capping his third career 100-yard performance and the Cardinals' third win in four weeks.

"I knew the team needed me -- I was the one who put us in that situation in the first place when I lost the ball," Wells said.

Rookie Sam Acho also had a career day on defense with two sacks and a fumble recovery.

That was enough for Arizona (4-7) to overcome another awful outing by John Skelton, who was 12 for 23 for 114 yards with two interceptions. Skelton had a passer rating of 30, one week after going just 6 for 19 for 99 yards with no touchdowns and three interceptions.

"It was obvious they were going to try and stop us from throwing the football, which was a surprise to me," coach Ken Whisenhunt said.