Denny Hamlin started 32nd but charged through the field to win Sunday's Sylvania 300 at New Hampshire Motor Speedway.