Logan Thomas threw for two touchdowns and ran for one and David Wilson scored on two long runs in the second half as No. 6 Virginia Tech shut out No. 24 Virginia 38-0 on Saturday.
The Hokies (11-1, 7-1 Atlantic Coast Conference) earned the league's Coastal Division title and a rematch with No. 18 Clemson in next weekend's ACC championship game in Charlotte.
It was Virginia Tech's eighth consecutive victory in the series, and 12th in 13 games. They will be playing for the ACC title for the fifth time and seeking their fourth title in five years.
The Cavaliers (8-4, 5-3) had won four straight and seemed ready to finally challenge their state rival, but quarterback Michael Rocco threw two interceptions and fumbled it away once.
The Hokies, who lost 23-3 to Clemson early in the season, will be playing their third title game rematch in the ACC, and are 2-0 in the first two, having beaten Boston College both times.
They got to this title game by shutting down Virginia's running game, which came in averaging better than 177 yards, and that enabled the Hokies to get plenty of pressure on Rocco when he had to throw. He had been sacked just 11 times coming into the game, but was thrown for a loss four times.
The Cavaliers finished with just 30 rushing yards on 26 attempts and gained 241 yards.
Virginia also had no answer for Thomas early or Wilson late, and when the Hokies drove 79 yards for a touchdown to open the third quarter, extending their lead to 21-0, the largest crowd of the season at Scott Stadium (61,124) grew quiet -- except for the Hokies fans.
Wilson capped the drive with a 27-yard burst off the left side. He added a 38-yard run up the middle for another touchdown early in the fourth quarter and fans headed for the exits.
Wilson finished with 153 yards on 24 carries and tied the ACC record with his 10th 100-yard game of the season. Thomas was 13 for 21 for 187 yards and ran for 27 yards on seven tries.
The 6-foot-6, 254-pounder got started right away, too.
He hit Marcus Davis for 36 yards on the Hokies' first play from scrimmage, and Wilson broke off a 17-yard run on the next play. A 5-yard run by Wilson and 15-yard facemasking penalty on Chase Minnifield moved the Hokies to Virginia's 14, and Thomas ran it in from there.
Virginia tried to answer, driving to the Hokies' 6, but on fourth-and-2, the Cavaliers elected to go for it, and Kevin Parks was tripped up by Jack Tyler after gaining only a yard.
Tyler later also recovered a fumble by Rocco that was forced by Kyle Fuller on a sack.
Following an exchange of punts, which found the Hokies starting at their own 4, Thomas twice converted third down plays with first-down runs, then hit Davis again, this time for 52 yards.
On third-and-8 from the Virginia 16, he hit Jarrett Boykin over the middle for the TD.
Minnifield, one of 31 fourth- or fifth-year players honored by Virginia before the game, had three 15-yard penalties in the first half, but one was waved off because Davis beat him for the 36-yard catch, and another on a deep ball was negated by a holding call against the Hokies.
J.R. Collins' interception of Rocco and return to the Cavaliers' 6 set up the last touchdown, Thomas' 7-yard pass to Davis. He finished with five catches for 119 yards.