New York managed just four hits and left 12 runners on base as Chien-Ming Wang (0-6) lost his sixth start in a row.
In the Yankees' first visit to Turner Field since 2000, Atlanta's pitching staff combined for its first consecutive shutouts since June 21-22, 2005, when it beat Florida by a combined 13-0 score.
The Yankees have lost three in a row and four of six.
Hanson (3-0) allowed four hits and five walks with four strikeouts in 5 1-3 innings. The right-hander, who has pitched 13 2-3 consecutive scoreless innings, left the bases loaded in the second and fourth and stranded two runners in scoring position in the third.
The former top prospect in Atlanta's organization left to a standing ovation with one out in the sixth as Braves manager Bobby Cox brought in Peter Moylan to face Derek Jeter with runners on first and second.
Jeter, the career interleague leader in hits, at-bats and runs scored, grounded into a 6-4-3 double play.
Moylan combined with Mike Gonzalez and Rafael Soriano to retire the Yankees in order over the last three innings to help the Braves win their second in a row and fourth in the past sixth.
Wang struggled after striking out the first two batters in the third.
Yunel Escobar singled, stole second with Chipper Jones at the plate and advanced to third on catcher Jorge Posada's throwing error. After Jones walked, McCann's RBI double scored Escobar as Jones advanced to third. Garret Anderson followed with a two-run double to make it 3-0.
McCann hit his seventh homer in the eighth off David Robertson.
Leaving for pinch-hitter Hideki Matsui in the sixth, Wang gave up six hits, three runs and one walk with four strikeouts in five innings. The right-hander's ERA as a starter dropped to 14.27.
New York dropped to 23-66 over the past two years, including 2-17 this season, when scoring three runs or less. Posada struck out four times, Mark Teixeira went 0 for 3 and Alex Rodriguez, who has 154 RBI since interleague play began in 1997, saw his season average drop to .207 after going 0 for 4.