Navy quarterback Malcolm Perry celebrates after a touchdown during the second half of Saturday's game against Army in Philadelphia. / AP photo by Matt Slocum

Updated with more information at 9 p.m. on Dec. 14, 2019.

PHILADELPHIA — Navy football coach Ken Niumatalolo wrapped Malcolm Perry tighter than Army's defense could muster for an embrace that served as a bit of an apology.

Perry had done it all for the Midshipmen in a 31-7 victory Saturday that earned him MVP honors in the 120th game between the service academies. Perry became the fourth quarterback in Football Bowl Subdivision history to rush for 300 yards, running for 304 and two touchdowns, and set a slew of program records.

It forced Niumatalolo to go on TV and issue a mea culpa: "I'm a bad coach. How did I bench him last year?"

Perry's biggest number? For the senior it was one, as in the first time he led No. 21 Navy (10-2) past Army (5-8).

"This was the biggest game I've played in my life," Perry said. "We didn't win the last three games (against Army). But that makes this even more sweet."

Navy used a trick play to help reverse a rare losing streak in the series and won the Commander-In-Chief's Trophy for the 16th time. The Midshipmen lead the series 61-52-7, but the Black Knights were trying to win four straight games against their top rival for the first time since completing the feat in 1996.

Photo Gallery

Army vs. Navy

Perry, a 5-foot-9, 190-pound senior, helped the fleet of foot Navy offense run away with the victory with another game for the record book. He ran for a 55-yard touchdown in the first half and a 15-yarder in the second, added a 44-yard scamper that wasn't for a score and set Navy season records in rushing yards (1,500) and 100-yard games (10).

"We wanted to open up the box. The last few years, we played in a phone booth," Niumatalolo said. "We didn't want to play that way. We wanted to spread things out and let Malcolm's talent take over."

Khalil Tate (Arizona) in 2017, Jordan Lynch (Northern Illinois) in 2013 and Stacey Robinson (Northern Illinois) in 1990 are the other quarterbacks who topped the 300-yard rushing mark in a game.

Perry's role in Navy's most GIF-worthy highlight didn't end up with his name on the scoring sheet, though.

He took the snap at the Army 1-yard line, ran to his left and handed off to receiver Chance Warren, who threw to Jamale Carothers to cap a touchdown drive that put the Midshipmen ahead for good at 14-7. It was Navy's twist on the Philly Special — the Naval Special? — at the home of the Philadelphia Eagles.

It was Navy's only pass of the game.

"I kind of suspected it when we got down there," said Perry, who finished with 29 carries.

Christian Anderson, a surprise starter at quarterback for Army, had two completions on four passes as there was more running at Lincoln Financial Field than at the Penn Relays held down the road each spring.

Anderson, not even listed on the two-deep chart, got the call over Kelvin Hopkins Jr., who had two rushing touchdowns last year in Army's 17-10 win over Navy but curiously played only mop-up time in Saturday's loss. Anderson sparked the Black Knights on the game's methodical 10-minute, 41-second opening drive, scoring on a 5-yard run.

Army coach Jeff Monken said Hopkins had a pulled hamstring and only practiced once this week.

"He wasn't going to be able to just turn it on and open up," Monken said.

Perry needed just four plays to even the score on his first dynamic run of the game that sent the Mids into a frenzy. The traditional Philly game drew 68,075 fans, including President Donald Trump for a third time, and ESPN's "College GameDay" was on hand. The Cadets and Midshipmen stood, saluted, bounced and cheered for the entirety of what's billed as "America's Game."

Trump wore a red "Keep America Great" hat for the traditional coin flip in misty conditions. Army called heads, the coin landed tails and the Midshipmen deferred possession. The referee said before the toss it was with, "great pride, great honor, to welcome our Commander in Chief, our President of the United States, Donald J. Trump. Mr. President, thank you for all that you do."

With pride and patriotism stretched end zone to end zone, Trump sat on the Army side of the field in the first half and crossed the field to the Navy side for the second half.

Carothers crossed the goal line for a 5-yard score in the third that made it 21-3 and sent 10 1/2-point favorite Navy on its way to clinching the trophy awarded to the team with the best record in games among the three service academies. Navy beat Air Force 34-25 on Oct. 5, but the Falcons beat Army 17-13 on Nov. 2, meaning a win by the Black Knights on Saturday would have had the three teams tied and kept the trophy in West Point, New York.

"We're taking it home!" Navy players yelled as they carried the award.

Bijan Nichols kicked a 37-yard field goal in the fourth quarter.

The Black Knights rushed for only 123 yards after averaging 311.7 yards this season, good enough for second nationally. Army had to surrender the CIC Trophy after winning it in consecutive seasons for the first time in program history.

"I wish I could pick out one thing that went wrong," Monken said. "We just never seemed to be playing as well as we're capable of playing. We're never going to be so talented that we can line up and whip a team on talent alone. When there's mistakes, they can be very costly for us."

Navy, which takes on Kansas State on Dec. 31 at the Liberty Bowl in Memphis, will try to finish the season ranked in the AP Top 25 for only the third time (2004, 2015) in a 56-year stretch.

Niumatalolo became the winningest coach in the history of the Army-Navy series with nine victories. Army's Earl Blaik went 8-8-2 from 1941-1958.

Perry passed Napoleon McCallum to set Navy's single-season rushing mark with 1,804 yards. McCallum had held the record since 1983 with 1,587 yards. Perry also became Navy's single-season record holder in total offense (2,831 yards) and is now the career leading rusher in the Army-Navy series in addition to being the player with the most rushing yards in a single game in the series.