Appalachian State beat James Madison 34-31 in overtime on Thursday night, according to the AP and the official box score. It was the first loss of the season for James Madison.

James London won the game with a 40-yard field goal in overtime, the AP reported. London also made field goals of 48, 27 and 36 yards.

James Madison had the ball first in overtime. Kicker Morgan Suarez missed a 47-yard try that bounced off the left upright, the AP reported. Suarez had made a 47-yard kick earlier that gave the Dukes a 24-21 lead in the fourth quarter. That kick tied his career long.

Appalachian State took its first lead late in the game, according to the AP. Colton Phares picked off a pass with 6:03 left and ran it back 21 yards to the James Madison 14. Two plays later, Henry Hasselbeck threw a 4-yard touchdown pass to Luke Douglas. That made it 31-24.

James Madison tied the game with three seconds left in regulation, the AP reported. Quarterback Camden Coleman ran it in from 6 yards out. Coleman threw for 232 yards with a touchdown and an interception.

Appalachian State quarterback Malachi Singleton threw two touchdown passes, the AP reported. He was 26 of 40 for 271 yards.

James Madison running back George Pettaway left the game late with an apparent left hamstring injury, the AP reported. He did not return. He finished with 57 yards and a touchdown. That ended his run of four straight games with at least 100 yards rushing.

With the loss, five teams in the top level of college football are still unbeaten, ESPN reported. They are Miami, BYU, Utah, Texas Tech and UCLA.

Appalachian State is now 5-2. James Madison is 7-1. James Madison hosts Troy next Thursday, and Appalachian State visits Georgia Southern on Halloween, the AP reported.

What we know: Appalachian State won 34-31 in overtime on a 40-yard field goal.
What we don't: How serious Pettaway's hamstring injury is.