Penn State was missing its top two running backs, its top-10 preseason ranking and its usually raucous home crowd. Ohio State didn’t miss much at all Saturday night at Happy Valley.

The No. 3 Buckeyes earned their 10th consecutive road victory over a ranked team, tying Notre Dame’s all-time NCAA Division I record set in the Frank Leahy era, by knocking off the No. 18 Nittany Lions 38-25.

OSU quarterback Justin Fields threw for 4 touchdowns, including 2 each to wide receiver Chris Olave and tight end Jeremy Ruckert, to lead the Buckeyes (2-0) to their fourth straight win over Penn State and eighth in the past nine meetings.

Since PSU joined the Big Ten in 1993 the program has beaten OSU 8 times, tying Michigan for the most victories over the Buckeyes in that span. But OSU, despite having its lead whittled to 8 early in the second half, never looked likely to lose this one.

Fields threw for 318 yards on 28-of-34 passing and two receivers, Olave and Garrett Wilson, surpassed 100 receiving yards.

Jahan Dotson made a terrific one-handed catch inside the 5-yard line and ran into the end zone untouched for a 21-yard touchdown catch from Sean Clifford to bring Penn State within 31-19 early in the fourth quarter. Clifford was denied on a 2-point conversion run and the Nittany Lions (0-2) got no closer. Dotson caught all 3 of Clifford’s TD catches including one with 6:27 left to get PSU within 38-25.

The Nittany Lions took over after a Buckeyes punt but Marcus Hooker picked off Clifford and returned the interception 31 yards to the PSU 9-yard line with 3:35 left. That led to OSU’s second missed field goal of the day.

Penn State started the second half with a 75-yard touchdown drive, capped by Clifford’s 14-yard TD pass to Dotson, to bring the Nittany Lions back within 21-13 early in the third quarter.

Fields guided OSU to 3 touchdown drives in the first half, including a TD pass to Ruckert for a 21-3 lead. Penn State’s defense appeared to be confused with one player running onto the field and one running off just before OSU snapped the ball on the third-down play.

The Nittany Lions got three points in an odd way to end the first half. OSU was running out the clock and it seemed that Fields’ 4th-down kneeldown ended the half. But the officials ruled — with both teams on their way back to their locker rooms — that there was a second left on the clock. PSU took advantage as Jordan Stout hit a 50-yard field goal.

Penn State showed urgency early, going for it in 4th and 2 from its own 45-yard line on its first drive of the game. Coach James Franklin’s risk did not pay off, as OSU flushed Clifford out of the pocket and forced a downfield throw to nowhere.

Olave, who was questionable all week after getting shaken up in OSU’s opener against Nebraska, caught a 26-yard TD from Fields to give the Buckeyes a quick 14-0 lead.

PSU drove 61 yards later in the first quarter and got a field goal to get within 14-3.

OSU wasted no time in driving to a touchdown in its opening drive, taking just 1:17 to travel 75 yards in 3 plays. Garrett Wilson’s 62-yard run on a end around set up Master Teague’s touchdown run.

Teague got most of the work as OSU fared better in the running game than it did against Nebraska. Teague ran for 110 yards and a score on 23 carries and Oklahoma transfer Trey Sermon ran 13 times for 56 yards.

Penn State was missing running backs Journey Brown, who is out for the season, as well as Noah Cain, whose season ended after a brief bit of playing time in the opener against Indiana. And the stands at Beaver Stadium were mostly either empty or filled with cardboard cutouts.