The Wildcats (5-4, 3-3) forced five turnovers, and snapped Richmond's (7-2, 5-1) seven-game winning streak. New Hampshire now has beaten the Spiders in five-straight games.
Richmond's Kyle Lauletta was 19-of-38 passing for 240 yards with a touchdown, but threw four interceptions.
The Wildcats led 27-15 before Gordon Collins ran for a 45-yard touchdown, and Peter Yoder kicked a 28-yard field goal to pull the Spiders to 27-25. Christian Breda's 29-yard field goal with six minutes left capped the scoring.
The Spiders drove to the Wildcat 21-yard line before Lauletta threw an interception with five minutes remaining.