Cavaliers' Greyson Lambert threw for one touchdown and ran for another and Ian Frye kicked a 42-yard field goal with 3:41 remaining, giving Virginia a 23-21 victory against No. 21 Louisville on Saturday.
The winning points came after Louisville's James Quick fumbled a punt and Kelvin Rainey recovered for Virginia (2-1, 1-0 Atlantic Coast Conference) at the Cardinals 25. Four plays later, Frye's third field goal of the game allowed the Cavaliers to end an 11-game slide against FBS-level competition.
Louisville (2-1, 1-1) had tied the game midway through the quarter, but the Cardinals' fourth turnover was too much for them to overcome. On the fumbled punt, Quick was bumped into by a teammate.
The victory was the first for Virginia against a ranked team since a 14-13 triumph at Florida State on Nov. 19, 2011, and was their first in their last 11 games against ACC competition.
Lambert played most of the way for Virginia, hitting Miles Gooch for a 15-yard touchdown to tie the game at 7, and scoring on a 10-yard run to give the Cavaliers a 17-7 lead in the third quarter.
Frye's 47-yard field goal made it 20-7, but then Louisville came back.
Gardner, who was pressured heavily and lifted in favor of more mobile freshman Reggie Bonnafon, returned in the fourth quarter and led consecutive touchdown drives. He hit Keith Towbridge for 28 yards on one third down play, and got help from a pass interference call on linebacker Henry Coley to convert a third-and-8 play. Dominique Brown ran it in from the 6 three plays later to make it 20-14.
After a three-and-out for Virginia, the Cardinals drove again with a huge assist from the Cavaliers. On third-and-goal from the nine, Gardner had Coley and defensive end Eli Harold converging on him when he threw the ball right into the arms of linebacker Max Valles for an interception. But Harold gave Gardner a shove after he got rid of the ball, was called for roughing and the Cardinals had new life.
Gardner found James Quick from 4 yards on the next play for a a 21-20 lead with 6:59 left.
Virginia took over at its 21, reached the 39 and punted, and the turnover kept it alive.
Gardner's first interception of the season set Virginia up with a short field. Anthony Harris made the pick, giving the Cavaliers the ball at the 15. Three plays later, Lambert hit Miles Gooch from 15 yards out to tie it. It gave the Cavaliers 38 points after turnovers this year; last year, they had 13.
The Cardinals took the opening kickoff and drove straight downfield, Gardner had completion of 11 yards to James Quick, 20 yards to Eli Rogers and nine yards to Kai DeLa Cruz. The latter set up a fourth-and-1 from the Virginia 9, and Gardner hit Charles Standberry for the touchdown off a play-action fake.