Justin Allgaier passed Jacques Villeneuve on the final lap during a green-white-checkered finish and won the Nationwide race at Circuit Gilles Villeneuve, depriving the French Canadian of his first victory at any level in NASCAR.