Villanova's Steve Weyler kicked a 24-yard field goal and John Robertson hit Lincoln Collins with a 5-yard scoring pass to give the Wildcats a 9-3 third-quarter lead. But Weyler missed the point-after attempt and Rocco capped the Spiders' next drive with a 15-yard scoring run.
Rocco was 21 of 42 for 314 yards passing with two interceptions and gained 15 yards on eight carries. Brian Brown caught eight passes for 119 yards for the Spiders.
Richmond's defense held Villanova, which has surpassed 40 points six times in eight games this season, to 114 yards rushing. Richmond (7-2, 4-1 Colonial Athletic Association) outgained the Wildcats 380-253.
Robertson was 12 of 25 for 139 yards and had 22 carries for 65 for Villanova (7-2, 4-1).