Keselowski won for the first time since September 2012 at Dover despite having to make an extra pit stop after earlier leaving his pit stall with the tire jack still attached to his car.
He overtook Kahne with nine laps to go and beat him to the finish line by 1 second for his 10th Sprint Cup career victory. He won five times during his championship season last year.
Kahne, who led for 138 laps, settled for second place in the fifth of 10 Chase for the Sprint Cup Championship events.
Man behind Doritos Locos Tacos passed away on Thanksgiving
Texas principal bans speaking Spanish, stirs controversy