Coming off a five-touchdown performance against Akron, Schaub helped the Cavaliers (3-2, 1-0 ACC) erase a pair of 17-point deficits and defeat Wake Forest for the 18th time in the last 19 meetings. The Demon Deacons ended a 17-game losing streak in the series last year.
Schaub started Virginia's comeback early in the third quarter with a two-yard touchdown toss to tight end Heath Miller.
After a three-yard run by fullback Ovie Mughelli restored Wake Forest's 17-point cushion, tailback Wali Lundy hit Ryan Sawyer for a 38-yard score on an option pass. Schaub connected with Miller again for a four-yard touchdown that cut the deficit to 34-31 with 12 1/2 minutes remaining.
Hagans capped the rally, and a 78-yard drive, with his first rushing touchdown of the season.
With Virginia limited to 49 yards on the ground, Schaub accounted for most of the offense, completing 22 of 27 passes for 312 yards.
Trying for consecutive wins over Virginia for the first time in 32 years, Wake Forest (2-3, 0-2) exploded for 24 points in the second quarter as freshman Chris Barclay, redshirt freshman Cornelius Birgs and Mughelli ran for touchdowns and Matt Wisnosky kicked a 30-yard field goal.
But the Demon Deacons could not pull off a second straight victory despite a 495-398 edge in total yardage.