The deal was announced by the club Friday.
"I had a sense of unfinished business," said Glavine, who turns 43 next month. "I didn't want my career to end the way it did last year."
Glavine, who turns 43 on March 25, has a 305-203 record in 22 seasons with Atlanta and the New York Mets. He posted a 2-4 record with a 5.54 ERA last season in 13 starts for the Braves, and underwent elbow and shoulder surgery in August.
But Glavine's recovery has gone well, and the Braves expect him to pitch in spring training and be ready for the start of the regular season. Glavine is penciled in as Atlanta's fifth starter behind Derek Lowe, Jair Jurrjens, Javier Vazquez and Kenshin Kawakami.
"I don't necessarily want to be the guy who has to pitch 220 innings and win every time he goes to the mound," Glavine said. "I'm looking forward to this stage of my career where I don't have to deal with that kind of pressure and can be more of a complement to our rotation."
"There were never any discussions in which another club was brought up," general manager Frank Wren said. "The motivation and focus was always to try to get something done here. We appreciated that."
Even though Glavine won't be reporting to camp immediately, the Braves already put up his name on an empty locker next to Chipper Jones.
"I think he's still got 13 or 14 wins in him," outfielder Jeff Francoeur said. "He still knows how to pitch and he's ready to prove it."
Glavine will make a guaranteed $1 million, and an additional $1 million in his first day on the major league roster during the regular season. He'll be owed $1.25 million after 30 days, and an additional $1.25 million after 90 days, a source said.
FoxSports.com was first to report that Glavine had agreed to sign with the Braves.
Jerry Crasnick covers Major League Baseball for ESPN.com. The Associated Press contributed to this report.