The 35-year-old was 7-16 with a 5.00 ERA with the Arizona Diamondbacks last season. He pitched 200 innings, the second-highest total of his career, in his first full season since elbow ligament-replacement surgery in 2007.
Lopez, a native of Mexico, is 75-82 in nine seasons with five teams. He will try to make the Braves as the No. 5 starter.
Atlanta's rotation includes Derek Lowe, Tim Hudson, Tommy Hanson and Jair Jurrjens. Mike Minor and Brandon Beachy are top candidates to be the No. 5 starter. Kris Medlen, recovering from elbow surgery, is expected to miss at least most of the season.
The deal was announced Monday.