Virginia is heading to the Final Four for the first time since 1984.
Kyle Guy had 25 points and 10 rebounds as the top-seeded Cavaliers withstood a brilliant performance from Purdue's Carsen Edwards and beat the third-seeded Boilermakers 80-75 in overtime.
Virginia had forced overtime on a buzzer beater from Mamadi Diakite.
Edwards matched a career-high with 42 points and shot 10 of 19 from 3-point range. He was one shy of the NCAA Tournament record of 11 3-pointers in a game, set by Loyola Marymount's Jeff Fryer against Michigan in 1990.
De'Andre Hunter drove to the basket and hit a layup with 28 seconds left to put Virginia ahead for good at 76-75.
Edwards missed a 3-pointer with nine seconds left, and Kyle Guy hit two free throws with 5.7 seconds remaining. Purdue's hopes for a game-tying 3-pointer ended when Edwards' long pass to Ryan Cline went out of bounds with 2.1 seconds left.
Ty Jerome had 24 points and seven assists for Virginia.
Purdue was seeking its first Final Four appearance since 1980.