ANNAPOLIS, MD -- Rutgers spent much of the week preparing for Navy's triple-option offense that is the catalyst for its high-powered rushing attack.

However, it was the Scarlet Knights' ground game that proved to be the difference in the game.

Justin Goodwin ran for 104 yards on 26 carries, replacing the injured Paul James, as Rutgers beat Navy 31-24 on Saturday.

James left the game with an apparent leg injury with 11:01 left in the second quarter. He had 96 yards on seven carries before being helped off the field. Navy came into the game leading the nation with 403 rushing yards per game, but the Scarlet Knights held them to just 171.

"I thought our defensive coaches had an excellent plan," Rutgers coach Kyle Flood said. "Our staff has spent a lot of time studying what they do here. Even when you do spend a lot of time studying what they do, they are really hard to defend because they make great adjustments. They have an excellent staff."

Navy trailed by 14 points in the fourth quarter but pulled to within a touchdown on a 14-yard pass from Keenan Reynolds to Brendan Dudeck with 5:26 left. The Midshipmen got down to the 6 in the final minute, but could not convert.

"You have to tip your hat to Rutgers," Navy coach Ken Niumatalolo said. "They got after us for most of the game. We had a hard time stopping them on the run and we had a hard time running the ball ourselves. They were very physical at the point of attack on both sides of the ball. We had a hard time matching up with them."

Rutgers quarterback Gary Nova ran for a pair of touchdowns. Desmon Peoples picked up 82 yards on 19 carries as Rutgers amassed 284 total yards on the ground. Peoples said he was prepared to share the load with Goodwin when James went down with the injury.

"It was fun," Peoples said. "Every time I get out there it's the best experience of my life. I just wanted to keep pushing because I knew eventually I was going to get a bigger role."

Reynolds was 12 of 22 for 231 yards with a touchdown and ran for two more scores.

Trailing 24-14 at the half, Reynolds found Jamir Tillman for 53 yards on the second play of the third quarter, setting up a 35-yard field goal by Nick Sloan. However, the Midshipmen (2-2) could not contain Rutgers, which increased the margin back to 14 on the next drive on a 1-yard run by Nova.

Navy mounted a comeback but could not overtake the Scarlet Knights.

Midshipmen linebacker James Britton suffered a broken left foot in the second quarter.

Navy got off to a quick start as linebacker Jordan Drake forced a fumble on the first play from scrimmage that was recovered by Quincy Adams on Rutgers' 25. Two plays later, Geoffrey Whiteside scampered 19 yards, setting up a 1-yard touchdown run by Reynolds.

Rutgers tied the game with 3:45 left in the first quarter on a 38-yard touchdown run by James. On the ensuing possession, a Reynolds fumble eventually led to a 21-yard field goal by Kyle Federico, increasing the Scarlet Knights' lead to 10-7 with 14:53 left in the half.

"This is as complete a team win as we had," Flood said.

Navy has lost five fumbles in three games this season after losing six all of last year.

The Scarlet Knights increased the margin to 17-7 midway through the second quarter with a 10-play, 80-yard drive, capped by a 1-yard run by Nova. Navy responded on the next possession with a 7-yard touchdown run by Reynolds.

"We just didn't do enough," Reynolds said. "We'll look at the film Monday, get it corrected and get ready for next week. We can't let this loss turn into a second."

Rutgers scored then again with 27 second lefts on a 91-yard drive that ended with a 3-yard run by Goodwin for a 24-7 lead at the half. It was the longest scoring drive of the season for the Scarlet Knights.

(Copyright 2014 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.)

More From 97.3 ESPN