Schaub completed 19 of 27 passes for 202 yards and he threw for scores in each quarter to help Virginia (2-2) win back-to-back games for the first time in nearly a year.
Schaub put the Cavaliers ahead for good, 7-0, with an eight-yard toss to Michael Mulgrew with 5 1/2 minutes to go in the first quarter. Just over a minute later, linebacker Darryl Blackstock returned a punt nine yards to double the lead.
The Zips climbed within 21-15 at halftime, but Schaub picked up where he left off in the third quarter, finding Billy McMullen for a two-yard touchdown.
Frye kept Akron close by scoring on a five-yard run, but cornerback Art Thomas returned an interception 42 yards for a touchdown that put Virginia ahead, 34-22.
In the final period, Schaub threw scoring passes of four yards to tight end Patrick Estes and 16 yards to tight end Heath Miller.
Frye had a huge game for the Zips, going 27 of 47 for 336 yards and a touchdown and running for two scores.