Rushing offense

Jalen Hurts had 63 yards on 11 carries, including a 7-yard touchdown run that tied the game late in the third quarter. Miles Sanders had just three runs of more than 5 yards and had just four carries in the second half.

Grade: B-minus

Passing offense

Jalen Hurts threw for 338 yards and three touchdowns. But he was sacked six times and was called for an early safety when he was flagged for intentional grounding in the end zone. Greg Ward had two touchdown catches and rookie Quez Watkins turned a screen into a 32-yard touchdown. Alshon Jeffery had two catches for 63 yards and drew two pass interference penalties from the Cardinals’ Patrick Peterson.

Grade: B-plus

Run defense

The Eagles did a nice job against the run, including Kyler Murray. Murray had just 29 yards on eight carries and the Cardinals averaged just 3.4 yards per carry on 30 rushing attempts.

Grade: A-minus

Pass defense

Missing three starters in the secondary, the Eagles battled. They forced three turnovers for only the second time this season, including two in the red zone. But Kyler Murray finished with 406 yards and three TDs, and DeAndre Hopkins became the third wideout in the last four weeks to put up 100-plus receiving yards against the Eagles.

Grade: C

Special teams

Dave Fipp’s special teams were a major liability. Cam Johnston had a first-quarter punt blocked that led to Arizona’s second touchdown and a 16-0 lead. They also got suckered by a fake punt early in the second quarter, had a poor PAT snap by Rick Lovato that cost them a point. And, oh yeah, their return game contributed nothing.

Grade: F

Overall

The Eagles played hard. After spotting the Cardinals a 16-0 lead, the Eagles battled back and tied the game at one point. Hurts had another impressive performance, and the defense forced three turnovers despite missing three starters in the secondary. But DeAndre Hopkins was just too much for them.

Grade: C-plus