Ohio State (10-0, 7-0 Big Ten) struck first, taking the opening kickoff and driving 75 yards for a touchdown in eight plays.
Marvin Harrison Jr. finished it when he took a reverse handoff around right end for a 19-yard touchdown, the first touchdown run of his career.
He found the end zone again on Ohio State’s next possession, this time in the more conventional way: By getting open just enough in the end zone to haul in a pass from Kyle McCord. The 25-yard touchdown was Harrison’s 28th as a Buckeye and broke a tie with Middletown High School graduate Cris Carter for fourth-most in Ohio State history.
Harrison added TD catch No. 29 on the first play of the second quarter when he shook a defender in the slot and caught a 9-yard pass in the end zone to make it 21-0.
Michigan State got on the board with 5:38 left in the second quarter when Jonathan Kim made a 53-yard field goal.
The Buckeyes got those points and then some back not long after as TreVeyon Henderson slashed up the middle from nine yards out to make it 28-3 with 3:30 left in the second quarter.
After forcing Michigan State’s third punt of the half, they tacked on one more scoring drive with an impressive two-minute drill, going 74 yards in eight plays and 1:26.
McCord completed five of six passes on the drive, including a back-shoulder throw to Cade Stover for an 18-yard touchdown with 15 seconds left in the half.
McCord hit Harrison for a 57-yard pass to start the third quarter, but the drive stalled after that and the Buckeyes settled for a 36-yard field goal by Jayden Fielding.
That was the only score of the second half by either team.
Harrison finished with seven catches for 149 yards, and he became the first Ohio State player to post two 1,000-yard receiving seasons.
He also tied David Boston for most 100-yard receiving games in program history with his 14th.
McCord finished 24-for-31 passing for a career-high 335 yards and three touchdowns. He previously went over 300 yards in a game twice, most recently against Maryland in Week 5.