Impey won the final stage of the Tour of Alberta, a UCI Americas Tour event in Canada, late on Sunday to clinch the overall title by one second.
“After everything I’ve gone through, this victory is very rewarding,” Impey told the race website.
The 29-year-old South African cyclist, who last won a stage race at the Tour of Turkey in 2009, was nine seconds behind Dutch leader Tom Dumoulin heading into the final stage, a 124.1km circuit around Edmonton.
He outsprinted Canadian Ryan Anderson in cold, wet conditions to take a 10-second time bonus, bumping long-time leader Dumoulin into second place after six days of racing.
“My team did an incredible job getting me the best position to sprint for the win,” Impey said.