Busch grabbed the lead Sunday with about seven laps left when he nudged Johnson out of the way. Johnson and Busch quickly got side-by-side to energize what had been a lackluster race.
The four-time defending champion pulled away to win his second consecutive race after taking the checkered flag last week on the road course at Infineon Raceway.
Tony Stewart finished second and Busch was third. Jeff Gordon was fourth.
Johnson put a little bump on Busch to move him up the track, allowing the No. 48 to slip underneath and win for the fifth time this season.
New Hampshire Results