Stephen Ames matched Haas' 66 to move into second place at 5-under-par 135. Reigning U.S. Open champion Retief Goosen is one stroke further back at minus-4 after a 66 of his own. Goosen is tied in third place with Tiger Woods, whose 6-under 64 was the low round of the day.
World No. 1 Vijay Singh stumbled to a 3-over 73. He slipped into 17th place at 2-over-par 142. He carded six bogeys and three birdies during his round.
Just nine players are in red figures at East Lake Golf Club at the halfway point. Players have had trouble going low due to breezy conditions over the first two days.
Haas entered round two tied for the lead with Jerry Kelly and Darren Clarke. Haas stumbled at the first with a bogey that dropped him out of the lead. The 50-year-old atoned for that error with a birdie at the par-4 third.
Haas, the oldest player in tournament history to qualify for this event, jumped to 5 under when he eagled the par-5 ninth.
He opened the back side with five straight pars. Haas, who has gone 266 starts without a win, dropped in a birdie at the par-5 15th to move one shot clear of Ames. Haas finished with a 4-foot birdie putt at the last to close two strokes clear of the field.
'Well, it was obviously a tougher day with the wind, and at least for me, was much cooler because we played the second group out yesterday and I don't think the wind picked up until later in the day, so I didn't get the full force of it yesterday,' Haas said. 'Today from the start the wind was blowing, the greens were a little quicker I thought, and there were few good scores. I got off to just a terrible start. But from then on, I really played well, hit a lot of good shots.'
Ames, who posted eight top-10s in a 10-start stretch at one point this season, was hot early in his round. He rolled in his first birdie at the par-4 third to move to minus-2.
The 2004 Western Open winner came right back with a birdie at four. He capped a run of three straight birdies on No. 5 to get to 4 under. Ames tripped to a bogey at the seventh, but erased that error with a birdie at No. 9.
Ames, who hails from Trinidad & Tobago, but recently gained Canadian citizenship, stumbled back to minus-3 with a bogey on the par-3 11th. He fought back with birdies at 13 and 15 to secure second place.
'I think my first goal today was to get the last tee time so it would be a little warmer when I teed off, seriously. The tee times have moved up two hours, so it was a goal to try to get out later,' Ames said. 'For me it's been a good year. To get into the Tour Championship has been a bonus. I'm thankful that I'm here.'
Goosen moved into red figures with a birdie at the fourth. He then picked up back-to-back birdies from the eighth to move to minus-3. The 2001 and 2004 U.S. Open champion kept rolling with a birdie at the 11th.
The South African climbed to minus-5 with a birdie at the par-5 15th. Goosen tripped to a bogey at the last to share third place at minus-4.
Woods, playing for the first time since the WGC-American Express Championship the first weekend in October, picked up early birdies at the third and fifth to move to even par for the tournament.
The World No. 3 carded his third birdie at the par-5 ninth. After four pars in a row, Woods birdied the par-4 14th. He came right back to birdie 15 and made it three straight when he birdied 16.
Woods, the 1999 Tour Championship winner, closed with pars at 17 and 18 to conclude the only bogey-free round of the tournament.
'I hit the ball a little bit better today,' said Woods. 'Yesterday I made some silly mistakes. I short-sided myself a few times. Today I just tried not to short-side myself, and I didn't do that. I made a couple nice putts out there for birdies to keep the momentum going and also stuffed a couple close.'
Kelly shot a 71. He is tied for fifth place with Mike Weir at 2-under-par 138. Weir played his final three holes in 4 over par on Friday.
Mark Hensby, Zach Johnson and Rory Sabbatini are the final players in red figures at 1-under-par 139. Clarke stumbled to a 3-over 73 and shares 10th place with Carlos Franco at even-par 140.