– On the road against one of the best defenses in America, 10th-ranked Penn State won the turnover battle and converted on third downs to survive yet another tough trip to Iowa.

Noah Cain ran for a 5-yard touchdown with 5:17 left and Penn State held off the 17th-ranked Hawkeyes 17-12 on Saturday night, its first win over a ranked opponent this season.

Cain finished with 102 yards for the Nittany Lions (6-0, 3-0), who extended their winning streak over the Hawkeyes (4-2, 1-2) to six games.

"This is a team. You're going to have to earn it," Penn State coach James Franklin said about the Hawkeyes. "The defense has been great all year. We leaned on them heavily."

A matchup between two of the nation's top defenses turned when Iowa's Nate Stanley threw an interception near midfield with 9:22 remaining. Penn State drove 35 yards on a gassed Iowa defense, and the last of three straight runs by Cain made it 17-6.

The Nittany Lions gained just 294 yards. But they were 10-for-19 on third downs against a defense ranked fourth in scoring defense entering play, and they scored 10 points off two Iowa miscues.

"We grinded it out," Franklin said.

Iowa pulled within 17-12 when Stanley found Brandon Smith for a 33-yard TD pass with 2:31 to go. The Hawkeyes' two-point try failed, though, and Cain converted a crucial third down that ensured that Iowa never saw the ball again.

The Hawkeyes have dropped back-to-back games by just 12 points after their first 4-0 start since 2015.

"We're doing the right things. We've just got to do a little better," Iowa defensive end A.J. Epenesa said.

Up 7-6 late in the third quarter, Penn State recovered a fumble at Iowa's 16 and Sean Clifford connected on an apparent touchdown pass to Pat Freiermuth that was overturned on review. Iowa then held the Nittany Lions at the 1-foot line, and two straight holding calls forced them to settle for a 33-yard field goal.

KJ Hamler caught seven passes, including an acrobatic 22-yarder for a TD, for Penn State.

Stanley threw for 286 yards, but the Hawkeyes ran for just 70 yards on 30 attempts.

Clifford was 12-for-24 for 117 yards, ending his streak of five straight games with at least 200 yards passing.