Mike Kafka's 18-yard pass to Riley Cooper in the closing seconds boosted the Philadelphia Eagles past Kansas City 20-17 on Friday night, making Todd Haley 0-7 in preseason games as the Chiefs' head coach. Sign up to receive FOX43 Email Alerts

The Chiefs' offense got off to a horrendous start and the man who's attempting to replace Philadelphia quarterback Donovan McNabb sputtered most of his time on the field.

Chiefs rookie linebacker Cameron Sheffield was immobilized and had to be taken away on a cart after a helmet-to-helmet tackle on Mike Bell left him motionless on the field. The Chiefs said only that he had a neck injury and was being further evaluated.

Kafka, a rookie out of Northwestern, led the Philadelphia reserves on an 8-play, 80-yard drive against the Chiefs backups to pull out the win. Cooper, a rookie receiver out of Florida, made a nice catch of the perfectly thrown pass into the end zone.

But Kevin Kolb, the designated replacement for six-time Pro Bowler McNabb, was 11 of 25 for 103 yards. In three preseason games Kolb has yet to be at the controls when the Eagles scored a touchdown. Michael Vick came in for Kolb momentarily when the Eagles converted a turnover into a quick touchdown in the first quarter.

The designated replacement for McNabb, who led Philadelphia to eight postseason appearances, five NFC championship games and one Super Bowl, Kolb threw an interception that led to a KC score.

The Eagles (2-1) and Chiefs (0-3) both played most of their starters well into the third quarter. The Chiefs will have one more chance, against Green Bay next week, to give Haley a preseason victory before heading into a regular season

Linebackers Demorrio Williams and Andy Studebaker each had two sacks for the Chiefs, who began the game in an offensive nightmare.

On the Chiefs' first five possessions, they lost a fumble, threw an interception, had two three-and-outs and one first down.

They appeared to be stopped on their sixth possession as well but a delay-of-game penalty kept the offense on the field and the Chiefs wound up driving 63 yards in 16 plays. They converted a fourth-and-1 play when Thomas Jones busted up the middle for 2 yards to the 3-yard line -- using 300-pound defensive tackle Derek Lokey for a blocking back.

On third-and-goal from the 4, Cassel connected with wide receiver Dwayne Bowe for the touchdown, cutting the lead to 10-7.

Kolb, pressured out of the pocket, made an off-balance and ill-advised throw down the field in the third period. The ball hung up and rookie safety Kendrick Lewis made a leaping interception and returned the ball 26 yards to the 26.

A few minutes later from the 11, Jones went over the right side, got a good block from tight end Leonard Pope and plowed into the end zone to put the Chiefs on top 14-10.

Matt Cassel recovered from a horrendous start and hit 14 of 23 for 85 yards, with one touchdown and one interception.

Jamaal Charles fumbled on the Chiefs' first play and Trent Cole recovered for the Eagles on the Chiefs' 22. On the second play, LeSean McCoy went up the middle for the touchdown. That would be the Eagles' last TD until the final minutes of the game.

Charles, who rushed for 1,120 yards last season and set a team game record with 259 yards against Denver, appeared to hurt his arm or shoulder near the end of the half. Charles, who had shoulder surgery in the offseason, came back to the sideline and was in uniform but did not go back into the game.

Trevard Lindley intercepted Cassel's pass later in the first quarter and put the Eagles in business on their own 22, setting up David Akers' 39-yard field goal.

Akers also kicked a 27-yarder in the fourth quarter. Kansas City's Ryan Succop kicked a 43-yarder for a 17-13 lead at the 2:45 mark of the fourth quarter.

FROM THE AP