Johnson is making $4.75 million this season under a one-year deal. The agreement announced Friday includes salaries of $6 million next year, $7.5 million in 2016 and $9 million in 2017. Atlanta has a $10 million option for 2018 with a $1 million buyout.
Johnson, 29, would have been eligible for free agency after the 2016 season.
"Chris has proved over the last year to be a valuable member of our team," general manager Frank Wren said. "We are happy to reach an agreement with him on this deal."
Johnson replaced the retired Chipper Jones at third base last season, batting .321 with 12 homers and 68 RBIs. He is hitting .255 with one home run and four RBIs in 26 games this season.