PHILADELPHIA -- The Arizona Cardinals can check division champions off their to-do list.
David Johnson ran for 187 yards and three touchdowns, Carson Palmer threw a TD pass and the Cardinals beat the Philadelphia Eagles 40-17 on Sunday night to clinch the NFC West title.
The Cardinals (12-2) will earn a first-round bye with a win over Green Bay next week. They still have a chance to secure the No. 1 seed if they win out and Carolina (14-0) loses its last two games.
The Eagles (6-8) would win the NFC East title if they beat Washington (7-7) at home and the Giants (6-8) on the road.
But they're not even close to Arizona's level.
The Cardinals outclassed Philadelphia in every way on their way to their eighth straight win.
Johnson, a rookie filling in for injured backs Chris Johnson and Andre Ellington, had a pair of 1-yard TD runs and a 47-yarder.
Palmer gave Cardinals fans a brief scare when he came out for one play after injuring his right index finger on a throw. But he returned to toss a 16-yard TD pass to John Brown and finished 20 of 32 for 274 yards.
Deone Bucannon returned Sam Bradford's interception 39 yards for a touchdown to give Arizona a 37-10 lead early in the fourth quarter, sending fans to the exits.
Bradford threw for 361 yards and two TDs.
Tyrann Mathieu intercepted Bradford's pass late in the fourth quarter and limped off the field. There was no immediate word on his injury.
The Eagles had fumbles end consecutive drives in the third quarter. Bradford lost the ball on a sack by Markus Goldenat Arizona's 44 and Ryan Mathews turned it over at midfield.
Johnson broke several tackles on his long run to give the Cardinals a 17-10 lead in the second quarter. He appeared stopped for a short gain, but came out of a pile and sprinted down the right sideline while fighting off defenders.
The Eagles were driving for the tying score, but went for fourth-and-1 at the Cardinals 8 and Mathews was stopped for no gain. DeMarco Murray is 14 for 14 on third and fourth downs of 2 yards or less, but he didn't get a carry until the third quarter.
After forcing Arizona's first punt, the Eagles quickly drove 53 yards to tie it at 10-10 in the second quarter. Mathews started the drive with a 20-yard run on the first play and Bradford connected with Zach Ertz over the middle for a 22-yard TD pass.
The Cardinals easily moved the ball on their opening drive and Johnson ran in from the 1 for a 7-0 lead. Palmer would've had a 78-yard TD pass on the first play from scrimmage but Brown dropped a deep throw in stride.
Bradford went down for one play and Mark Sanchez came in for a handoff. Fans stood up, yelled and motioned for Bradford to get up while he was laying on the field. The Eagles lost two games by a total of 90-31 when Sanchez started two games last month.