WEST LAFAYETTE, Ind. -- Frankie Williams produced three big plays -- an interception return and two punt returns -- to set up 17 points and Purdue snapped a 12-game losing streak against FBS competition Saturday with a 43-34 victory over Western Michigan.

Jarvion Franklin's two touchdown runs gave the Broncos a 14-10 second-quarter lead, but the Boilermakers, 1-11 in 2013, scored the first half's final 13 points and never trailed again in the season opener. Purdue had not beaten an FBS opponent since defeating Indiana on Nov. 24, 2012.

Williams' 56-yard interception return in the second quarter set up quarterback Danny Etling's 4-yard touchdown run that gave the Boilermakers the lead for good, 20-14 with 5:16 remaining in the first half, ending an overall losing streak of 10 games.

Williams' 27-yard punt return set up a 44-yard Paul Griggs field goal that extended the Purdue lead to 23-14 at halftime. His 36-yard punt return in the third period set up Etling's 8-yard touchdown pass to tight end Gabe Holmes, pushing the Boilermakers' advantage to 37-21.

The Broncos, who got three touchdown runs from Franklin, pulled to within 37-34 with 8:11 to play, but the Boilermakers iced it with 3:42 to play when Akeem Hunt scored on a sweep of right end, covering 38 yards for the game-clinching score.

Senior Raheem Mostert ran 22 times for a career-best 146 yards and an 11-yard TD in the third quarter touchdown for Purdue.

Griggs had three field goals, including a career-best 51-yarder that tied the sixth-best in school history.

Etling, 0-7 as a starter in his freshman season, passed for two touchdowns and ran for another. He threw an 11-yard touchdown pass to Justin Sinz and an 8-yarder to Gabe Holmes.