ATLANTA — Freddie Freeman celebrated his newly won All-Star berth by driving in four runs with three hits, and the Atlanta Braves beat Mat Latos and the Cincinnati Reds 6-5 Thursday. Freeman held off Dodgers rookie Yasiel Puig to win the fan voting for the final spot on NL All-Star roster. The first baseman drove in two runs with a first-inning double and added run-scoring singles in the second and fourth innings. Justin Upton also had three hits to help Tim Hudson (6-7) earn his second straight win. Craig Kimbrel pitched the ninth for his 25th save. Phillies 3, Nationals 1: Kyle Kendrick outpitched All-Star Jordan Zimmermann, pinch-hitter Kevin Frandsen hit a tiebreaking double in the seventh and Philadelphia beat Washington. Frandsen is hitting .355 (11 for 31) with 10 RBIs as a pinch-hitter this season. Kendrick (8-6) allowed one run and five hits in seven innings to help Philadelphia take three of four from the defending NL East champions. Cubs 3, Cardinals 0: Edwin Jackson earned his third straight win, combining with four relievers on a four-hitter, and Anthony Rizzo drove in all the runs to lead the Chicago Cubs over St. Louis. St. Louis had the tying run at the plate in the ninth inning after Kevin Gregg dropped a throw covering first on Allen Craig's grounder, and David Freese walked. Alfonso Soriano made a shoestring catch on Jon Jay's liner to end the game. The Cubs escaped with the win, and Gregg got his 16th save in 18 chances. Diamondbacks 5, Brewers 3: Martin Prado lined a two-run single in the eighth inning, Wade Miley pitched eight effective innings, and Arizona topped Milwaukee to snap a three-game losing streak. Miley (6-7) gave up a pair of homers in the first three innings before settling down. Giants 4, Padres 2: Pablo Sandoval hit his first home run since May 21, and All-Star Madison Bumgarner settled down to allow four hits in seven innings as San Francisco beat San Diego in a matchup of the worst teams in the weak NL West. The defending World Series champion Giants, who snapped a four-game losing streak, had lost 19 of 24 coming in and were a season-high 10 games under .500. The Giants are 2-8 in July, with Bumgarner getting both wins. Sergio Romo pitched the ninth for his 21st save in 24 chances. The Padres have lost 16 of 19. Dodgers 6, Rockies 1: Chris Capuano pitched shutout ball for 6 1/3 innings, Mark Ellis drove in four runs, and the Los Angeles Dodgers beat Colorado for their fifth win in a row. The Dodgers moved above .500 for the first time since April 15. Capuano (3-6) allowed six hits, struck out a season-high eight and walked none to earn just his second win at home and first since beating Miami 5-3 on May 12. — Agencies