Kyle Larson took the lead on a restart with nine laps remaining and held off Chase Elliott at Michigan International Speedway for his first Sprint Cup victory.