Kahne passed Harvick following a double-file restart with 11 laps left, and then beat him by just under 2 seconds for his second victory this season.
The race featured eight caution flags.
Juan Pablo Montoya (Chevrolet), the 2000 Indianapolis 500 winner, in his first season in the Sprint Cup Series, was third. David Reutimann (Toyota) fourth and Mark Martin (Chevrolet) completed the Top 5 finishers.
"We knew Harvick and Montoya would be there, but we had a little bit better car," Kahne said in a post-race interview.
In the standings, leader Tony Stewart has 3,564 points, Jimmie Johnson has 3,344 and Jeff Gordon has 3,310 with only next Saturday's race at Richmond, Va., before the "Race for the Chase" determines this season's points champion.
Wisconsin business offering 'therapeutic cuddling' forced to close
Video of Victoria’s Secret models trying to 'twerk' hits Instagram