The 36-year-old Anderson had spent his entire 15-year career with the Los Angeles Angels, where he made three All-Star appearances and batted .300 or better seven times.
The Braves had to go to a backup plan after an apparent deal for Ken Griffey Jr. fell through last week. Anderson, a left-handed hitter, will likely platoon in left field with Matt Diaz, the same role the Braves had envisioned for Griffey until he decided to return to the Seattle Mariners.
Even though Anderson was coming off a solid season - he batted .293 with 15 homers and 84 RBIs in 145 games - he had to take a huge pay cut from the $12 million he made in the final year of his contract with the Angels.
"We are absolutely thrilled to bring Garret to Atlanta," Braves general manager Frank Wren said in a statement. "He is a proven winner and true professional. We look forward to his veteran leadership and his presence in our lineup."
Atlanta was eager to bolster an outfield that produced 27 homers in 2008 - worst in the majors. The Braves are counting on right fielder Jeff Francoeur to bounce back from a miserable season, and they believe the pairing of Anderson and Diaz will produce solid numbers in left.
Diaz went down with a knee injury last May and batted .244. But he batted above .300 in platoon roles the two previous seasons.
With the signing of Anderson, the Braves are unlikely to make any more major moves before opening day. The lineup is set except for center field, where Josh Anderson, Gregor Blanco and minor-league prospect Jordan Schafer after battling for the starting spot.
The Braves play their first spring training game on Wednesday against the Detroit Tigers at Lakeland.