Aaron Howard made a base-line jumper with three seconds to go in South Bend, Ind.
The winning basket came three seconds after Notre Dame guard John Paxson tied the game at 46-46, ending an Irish rally from an eight-point deficit with nine minutes remaining.
Notre Dame, which led by as many as seven points in the first half and by one point at the intermission, fell behind when the Wildcats broke a 31-31 tie with a 12-4 spurt midway through the final period. Six Villanova players scored during the go-ahead streak.
Paxson, who had 12 points in the first half, was held scoreless for the first 14 minutes of the final period as Villanova took its biggest lead at 43-35.
But a three-point play by Tim Andree and three straight field goals by Paxson pulled the Irish within two points with under two minutes remaining. Neither team scored, and Notre Dame got the ball back on a missed Villanova free throw with 28 seconds to go and set up Paxson's tying shot.
Villanova called time after that, and Howard, a 6-7 senior who finished with eight points, took a cross-court inbounds pass and lofted the winning shot. Howard also had the Wildcats' final basket in the closing seconds of the first half.
John Pinone led Villanova (13-2) with 13 points.