Bennett Moehring's 48-yard field goal attempt inched wide left as time expired in snowy, windy Philadelphia, and Army West Point topped Navy 14-13. It's the first time Army has topped Navy in consecutive seasons since 1995-96, and marks the first time since 1996 that Army has taken home the Commander-in-Chief's Trophy given to the top FBS service academy. 

Army quarterback Ahmad Bradshaw rushed 21 times for 94 yards and scored the game-winning touchdown with 5:10 to play to cap off a 13-play, 65-yard drive for the Black Knights. 

What did we learn Saturday afternoon?

1. Bradshaw will go down in Army history: If the end of the Army-Navy Game seemed familiar, it's probably because you've seen it before. Bradshaw's execution on the game-winning drive was eerily similar to the 12-play, 80-yard drive in the fourth quarter of the rivalry last year that ended with his 9-yard, game-winning touchdown run. The 1-yard plunge Saturday cemented Bradshaw in Army history as not only the player who ended the 14-game losing streak to Navy last year but reestablished the Black Knights as the power program in the rivalry.

He finished the season with 1,566 rushing yards -- fifth nationally. That's more than USC star Ronald Jones, Oregon veteran Royce Freeman and Heisman Trophy finalist and reigning winner Lamar Jackson of Louisville. Not a bad legacy to leave.

2. Navy quarterback Malcolm Perry had a day: The Midshipmen have evolved away from the traditional triple-option offense at times this year, and Perry is a big reason why. The former slot back has been electric when he takes the snaps in the shotgun-based package this year, and he was a star on Saturday. Perry rushed 30 times for 250 yards and had a 68-yard touchdown in an offense that looked like a zone read offense but was really just a new-age version of the single wing.

Army stopped him enough, but that didn't prevent Perry from being one of the biggest stars of one of the biggest games of the year. Perry finished the season with 1,068 rushing yards and nine touchdowns, and coach Ken Niumatalolo has options next year when he returns as a junior with fellow quarterback Zach Abey.

3. Niumatalolo shouldn't have played for the field goal: Don't blame Moehring for missing the field goal at the gun. He shouldn't have been in that position. In blowing snow during a game in which players and coaches had to clear spots for holders on every field goal attempt, playing for the field goal -- regardless of distance -- is a risky proposition. Yet, that's what Niumatalolo did on Saturday afternoon.

It wasn't all his fault.  A botched snap, another that was picked up by Perry and moved forward for the first down, sloppy and undisciplined penalties, and a general lack of flow plagued the final drive of the game. But in that situation, given the conditions, that should have forced the Navy staff to take more risks, not get ultra-conservative. It's OK to keep it simple, Navy did that all day and nearly won because of it. Instead, that mindset cost the Midshipmen the game.

CBS Sports covered every moment of the Army-Navy Game right here with updating scores, analysis and highlights from the affair. If you are unable to view the content below, please click here.

Thanks for joining us.