ST. LOUIS (AP) – Matt Leinart knew what to do with all those St. Louis Rams mistakes.

Marcel Shipp scored three touchdowns, Edgerrin James had 115 yards rushing, and Leinart won for the second time in seven pro starts, capitalizing on the Rams’ season-high 126 yards in penalties in the Arizona Cardinals’ 34-20 victory on Sunday.

Marc Bulger threw for 314 yards and two touchdowns, but also had three interceptions to add to woes that contributed to a sixth loss in seven games for the Rams (5-7). Bulger has three touchdown passes and six interceptions the last four games.

St. Louis ended a five-game losing streak last week over the 49ers with offensive coordinator Greg Olson replacing head coach Scott Linehan as play-caller, but couldn’t conjure any more scoring from the new arrangement after falling behind early.

Two of the 10 calls against the Rams led to scores by Arizona (3-9) on the next play. Larry Fitzgerald caught an 11-yard touchdown pass one play after a 34-yard pass interference on Fakhir Brown in the second quarter, and Shipp scored on a 6-yard run one play after Corey Chavous’ interference penalty meant a 27-yard gain for the Cardinals.

A third crucial penalty, a defensive holding call on Leonard Little, wiped out Ron Bartell’s interception in the end zone early in the fourth quarter to help the Cardinals put the game away. Shipp, who entered the game with only 6 yards on three carries, scored his third touchdown on a 9-yard run four plays later for a 31-13 lead.

The Cardinals nearly matched the Rams in penalties, getting whistled 11 times for 107 yards. None of them came at a significant cost.

The touchdowns were Shipp’s first since 2002, when he was Arizona’s feature back. James, limited to only four carries for 15 yards last week when the Cardinals abandoned the run, had 26 carries for his first 100-yard game of the season against the NFL’s worst run defense.

Leinart’s numbers, 15-for-24 for 186 yards and one touchdown, were not nearly as impressive as his 405-yard passing effort last week – the most yards by a rookie in NFL history. But that came in a 31-26 loss to the Vikings.

Another big play, Adrian Wilson’s interception and 35-yard return when the Rams were rushing to squeeze in another play before the two-minute warning, helped Arizona build a 17-3 halftime lead.

The Rams’ Torry Holt had seven catches for 115 yards and a 15-yard touchdown pass, his first score in six games since a three-TD, 154-yard effort against the Seahawks on Oct. 15. But he dropped a certain 83-yard touchdown pass in the second quarter after splitting two defenders.

The margin could have been larger except two Arizona drives stalled at the 1 and 5, forcing Neil Rackers’ chip-shot field goals.

The Cardinals, who had 51 passes and only six runs last week, opened with a 13-play drive that featured eight carries capped by Shipp’s 1-yard scoring run.

AP-ES-12-03-06 1622EST

Only subscribers are eligible to post comments. Please subscribe or to participate in the conversation. Here’s why.

Use the form below to reset your password. When you've submitted your account email, we will send an email with a reset code.