The Braves won their first division title since 2005. They will have home-field advantage against the Dodgers in the NL division series, which begins Thursday at Turner Field.
Atlanta (96-66) finished with its best record since also winning 96 games in 2004. After the victory, players gathered for a photo around a 2013 banner that was placed on a stand in front of the mound.
The Braves needed St. Louis to lose for a shot a home-field advantage throughout the NL playoffs. But the Cardinals beat the Cubs 4-0 to lock up the top spot.
Erik Kratz hit a three-run homer for the Phillies (73-89), who finished with their worst record since 2000, when they were 65-97.
Johnson had a two-run triple in the sixth and a two-run single in the eighth while setting his career high with five RBIs.
Braves catcher Gerald Laird had four hits and scored four runs. Jose Constanza drove in two runs with a pinch-hit single in the fifth after the Phillies cut the lead to 5-4.
After five straight first-place finishes, the Phillies fell to 81-81 last season. The decline continued this season, and manager Charlie Manuel was fired on Aug 16.
The Phillies were 20-22 under Manuel's replacement, Ryne Sandberg, who was given a three-year contract on Sept. 22.
Gattis and Julio Teheran (14-8) were the Braves' top rookies this season. Teheran allowed four runs on six hits in five innings.
Gattis finished second among NL rookies with 21 homers, behind San Diego's Jedd Gyorko. He leads all rookies in the majors with 65 RBIs. Gattis has started at catcher, left field and first base and is expected to start in left field in the playoffs if catcher Brian McCann returns from an adductor injury, as expected.
Freddie Freeman had two hits, including a run-scoring single in the Braves' three-run first. For the season he hit .319 with 23 homers and 109 RBIs.
Zach Miner (0-2), who began his career in the Braves' organization, gave up five runs on seven hits and three in only 2 1-3 innings. Six Phillies pitchers combined for nine walks.
Phillies third baseman Cody Asche left the game with a cut chin in the first inning. He was hurt when a throw from left fielder Domonic Brown bounced and hit his chin as Jason Heyward was sliding into third base. Freddy Galvis replaced Asche.
Phillies rookie right-hander Tyler Cloyd, who made 11 starts, gave up two runs on three hits in the eighth in only his second relief appearance.
Braves closer Craig Kimbrel pitched the ninth.