Freeman's drive off Mike Dunn clinched at least an NL wild-card berth for the Braves, who squandered a big lead in the wild-card race with a huge collapse last September.
Longtime star Chipper Jones, who plans to retire at the end of the season, led off the ninth with a double. He moved to third on a wild pitch by Dunn (0-3) and scored when Freeman's 22nd homer easily cleared the centre-field wall.
Craig Kimbrel (3-1) worked a scoreless inning to help the Braves win their 22nd straight game started by Kris Medlen. The streak is the longest in the majors since the New York Yankees won 22 consecutive games started by Whitey Ford in 1950 and '53.
REDS 4, BREWERS 2
CINCINNATI (AP) — Johnny Cueto pitched seven solid innings, and the Cincinnati Reds stayed in the chase for the NL's top record by beating Milwaukee after learning they'll be without their manager for the rest of the week.
The Brewers dropped back-to-back games for the first time in more than a month, and fell to 4 1/2 games behind St. Louis for the final NL wild card spot as the Cardinals later beat Houston 4-0.
Reds manager Dusty Baker met players before the game and revealed he suffered a mini-stroke in addition to being treated for an irregular heartbeat last week. The 63-year-old manager hopes to return to the dugout next week.
The Brewers couldn't do much against Cueto (19-9), who is rounding back into form as the playoffs approach. Mike Fiers (9-9) gave up nine hits and four runs in 4 1-3 innings for Milwaukee.
DIAMONDBACKS 7, GIANTS 2
SAN FRANCISCO (AP) — Paul Goldschmidt hit a three-run homer and a pair of sacrifice flies for a career-high five RBIs.
Goldschmidt on his own gave Josh Collmenter (5-3) plenty of support as Arizona won for the seventh time in its last nine games. The D-backs are trying to keep their slim NL wild-card hopes alive.
Aaron Hill had three hits and scored three runs, and Arizona scored two of its runs on wild pitches on a cool night featuring swirling mist above the field in the early innings.
Tim Lincecum (10-15) had his start pushed back two games from Sunday after San Francisco clinched its second division crown in three years with a win against San Diego on Saturday night.
The two-time NL Cy Young Award winner lost for the first time in five starts since Aug. 26 at Atlanta. He had won his previous two outings and three straight decisions.
PADRES 2, DODGERS 1
SAN DIEGO (AP) — Josh Beckett lost for the third time in six starts with Los Angeles, whose playoff chances were dealt a blow.
With eight games to play, the Dodgers are tied with Milwaukee, 4 1/2 games behind St. Louis for the NL's second wild-card spot. St. Louis beat Houston 4-0 and Cincinnati beat the Brewers 4-2.
The Padres scratched out two runs against Beckett (1-3) and made two nice defensive plays. Left fielder Chris Denorfia threw out Shane Victorino at the plate in the second inning, and third baseman Chase Headley made a heads-up play that helped erase Matt Kemp in the sixth, when the Dodgers failed to score after loading the bases with two outs.
Padres closer Huston Street got in and out of trouble in the ninth for his 23rd straight save. Street allowed A.J. Ellis' RBI double to the gap in right-centre and then put runners on the corners with one out. He struck out Andre Ethier and got Kemp to fly out to right to end it.
Edinson Volquez (11-11) allowed six hits in seven innings, struck out four and walked two.
PHILLIES 6, NATIONALS 3
PHILADELPHIA (AP) — Darin Ruf homered for his first major league hit, Carlos Ruiz and Domonic Brown also went deep as Philadelphia beat playoff-bound Washington.
Cole Hamels (16-6) overcame five shaky innings to set a career high in wins and help the five-time defending NL East champion Phillies keep their faint post-season hopes alive. Hamels allowed three runs and seven hits, tying his shortest outing of the year.
Philadelphia remained 5 1/2 games behind St. Louis for the NL's second wild-card spot. Milwaukee and the Los Angeles Dodgers also are ahead of the Phillies in the standings with eight games remaining.
The Nationals' magic number for winning the first division title in franchise history remained at five because Atlanta beat Miami 4-3. Their lead over the Braves dropped to four games with eight left.
PIRATES 10, METS 6
NEW YORK (AP) — Pedro Alvarez hit his 30th homer and drove in four runs as Pittsburgh ended the Mets' four-game winning streak.
Pittsburgh avoided elimination in the playoff race, remaining mathematically in contention for the second NL wild-card spot. The Pirates posted their 76th victory, the team's most since 1999 when they won 78.
Alvarez hit a three-run shot that made it 4-0 in the first inning. He drew a bases-loaded walk in the fifth, helping the Pirates win for just the sixth time in 24 games. Garrett Jones hit his 25th homer and drove in three runs for the Pirates. Wandy Rodriguez (12-13) improved to 5-4 since being traded from Houston to Pittsburgh in late July.
David Wright homered and added a two-run single, tying the Mets' career record of 1,418 hits set by Ed Kranepool.
The Mets' Collin McHugh (0-3) was pulled soon after Josh Harrison's two-run triple in the second.
CARDINALS 4, ASTROS 0
HOUSTON (AP) — Jaime Garcia pitched seven sharp innings and Jon Jay drove in two runs to help St. Louis improve its playoff chances.
The Cardinals won their fourth straight and extended their winning streak over the last-place Astros to a franchise-best 10 games. They also moved 4 1/2 games ahead of Milwaukee in the race for the second NL wild card. The Brewers lost in Cincinnati 4-2.
The Dodgers, who played later in San Diego, began the day 3 1/2 back.
With seven games remaining, St. Louis is closing in on the NL's final available post-season spot. Atlanta clinched at least a wild-card berth by beating Miami 4-3 earlier Tuesday night.
ROCKIES 10, CUBS 5, 6 1-2 innings, rain
DENVER (AP) — DJ LeMahieu had three hits and finished a home run short of the cycle and Wilin Rosario went deep for Colorado in a rain-shortened game.
Matt McBride homered and Chris Nelson had three hits for the Rockies, who won a matchup of two 94-loss teams. Carlos Torres (5-3) got the win after allowing one run in two innings of relief.
The teams played in a constant drizzle throughout the game with temperatures hovering in the low 50s. The game was delayed in the middle of the seventh and called 48 minutes later.
Dave Sappelt and Starlin Castro homered for the Cubs, who have lost seven of eight. Chicago is five losses shy of its first 100-loss season since 1966.
Chicago starter Chris Rushin (1-3) allowed six runs on seven hits in 3 2-3 innings.