BALTIMORE — Navy was enjoying great success running the ball and its defense was pushing aside the massive but inexperienced Ohio State linemen.
Many of the red-clad fans in the stadium were starting to fidget, because it appeared as if a huge upset might be in the making.
The Midshipmen could not sustain the momentum. Fifth-ranked Ohio State took advantage of two mistakes and pulled away to a 34-17 victory Saturday.
Navy (0-1) held a 7-6 lead and was driving on the opening series of the second half when Ohio State's Joey Bosa hit Keenan Reynolds as the quarterback was tossing a pitch to Demond Brown. The ball got loose, and Darron Lee took it 61 yards the other way for a touchdown.
That might have been enough to send Navy reeling, but the Midshipmen immediately responded. Ryan Williams-Jenkins ran 67 yards to the Ohio State 17, and Reynolds scored from the 1 to put Navy up 14-13. That gave Reynolds a touchdown in nine straight games, tying the school record.
Later in the third quarter, the Buckeyes made their move. Devin Smith got behind the Navy defense on the right side, caught a pass from redshirt freshman J.T. Barrett and broke a tackle for an 80-yard score. It was the longest touchdown against the Midshipmen since an 87-yarder by Tulane in November 2004.
After Navy closed to 20-17 with 13:54 remaining, the Buckeyes launched a 10-play drive that featured just one pass. Ezekiel Elliott converted a fourth-and-1 from the Navy 45 and Barrett threw a 19-yard completion before Elliott ran in from the 10.
Barrett's 9-yard touchdown pass to Mike Thomas made it 34-17 with 2:09 left, and the Midshipmen were done.
"They did a great job of battling and finishing us off at the end," Navy coach Ken Niumatalolo said. "We had some uncharacteristic mistakes that we don't normally have, and against a team like Ohio State you can't do that. We knew coming into the game we had to play perfect."
Ohio State (1-0) won despite allowing Navy's triple-option attack to amass 370 yards on the ground, including 118 by Williams-Jenkins.
"Honestly, I don't know if we'll play a tougher team, and you're not going to see anything like that all year," Buckeyes defensive tackle Michael Bennett said. "Props to Navy, they're going to win a lot of games this year."
Navy drove to the Ohio State 18 on the final possession of the first half before Nick Sloan missed a 36-yard field goal, keeping the Buckeyes' deficit at 7-6.
Throwing mostly short, safe passes, Barrett went 8 for 11 for 96 yards and an interception before halftime.
Barrett's first play at Ohio State was a pass completion for 14 yards. Although he appeared comfortable in the no-huddle offense, the Buckeyes quickly punted.
Ohio State's next possession began with four straight runs, followed by a sack. A shovel pass on a third-and-21 gained 16 yards to set up a 46-yard field goal by freshman Sean Nuernberger.
Navy answered with an 11-play drive, 10 of them runs, capped by a 1-yard touchdown sweep by DeBrandon Sanders.
Midway through the second quarter, Barrett went 4 for 4 for 54 yards to bring the Buckeyes to the Navy 8. But he hurried a first-down pass and was intercepted by Parrish Gaines.
"After the interception, I was like, 'J.T., you knew you shouldn't have thrown it.' And I still threw it," Barrett said.
Barrett's inexperience showed again on the next series, when Ohio State had to settle for a field goal. On a third-and-2 from the Navy 4, Barrett rolled right and pitched too late to Elliott, who was smothered for a 7-yard loss.
Barrett went 12 for 15 for 226 yards and two scores in his college debut. He replaced senior Braxton Miller, who sustained a season-ending shoulder injury two weeks ago.
"He was good. I never thought he was rattled," said coach Urban Meyer, now 13-0 in openers.