The Braves, winners of six straight, are one-half game ahead of Philadelphia, which has dropped two straight and nine of 13.

Improving to 16-4 since May 10, the Braves have made up 7 1/2 games in the NL East since May 17, when they were in last place. Atlanta hasn’t held first place in the division this late in a season since 2005.

Philadelphia, which was shut out in five of its previous eight games, had just three hits off Hanson (5-3) before the right-hander left with two outs in the seventh. Joe Blanton (1-4) lost his second straight start.

At San Francisco, Ubaldo Jimenez pitched a four-hitter to become the majors’ first 10-game winner this year, outpitching Tim Lincecum to lead Colorado past the Giants.

Clint Barmes hit a two-run single in the second inning that held up for Jimenez (10-1), who struck out nine, lowered his big league-best ERA to 0.78 and extended his career-best scoreless innings streak to 26.

Lincecum (5-2), making his 100th start and matched up with Jimenez for the fourth time, walked five for the fourth straight start and the Giants had their four-game winning streak snapped.

At San Diego, Jerry Hairston Jr. hit a grand slam in the second inning and Chase Headley had a homer among his four hits as the Padres set the scoring record for Petco Park in a victory over the Mets.

The previous scoring mark was set by the Padres in a 17-2 win over Atlanta in their home opener on April 12. Petco Park opened in 2004. Headley scored four runs while Chris Denorfia and Adrian Gonzalez scored three apiece.

San Diego roughed up left-hander Hisanori Takahashi (4-2) and the Mets’ bullpen for 19 hits, matching the season-high set on April 12.

Kevin Correia (5-4) allowed six runs and seven hits in six innings.

At Miami, Cody Ross hit a three-run homer to spark Florida’s biggest inning this year, Cameron Maybin hit an inside-the-park home run to help turn the game into a runaway and the Marlins erased an early four-run deficit in beating Milwaukee.

Chris Coghlan singled and then hit a two-run triple in what became a seven-run sixth for the Marlins, who scored four more in the seventh—the last two coming on Maybin’s line drive to center that he beat without even sliding at the plate, crossing with both arms raised.

Corey Hart hit his 13th homer and finished with two RBIs for Milwaukee, which led 4-0 after 5 1/2 innings.

Marlins starter Nate Robertson gave up eight hits and four runs in 5 1-3 innings. Jorge Sosa (1-0) got the win in relief.

Milwaukee starter Chris Narveson (4-3) was charged with five earned runs.

At Pittsburgh, pinch-hitter Bobby Crosby singled in the go-ahead run in the eighth inning, Garrett Jones homered and the Pittsburgh Pirates ended a five-game losing streak.

The Pirates were coming off a 1-6 road trip and had lost nine of 11, only to beat the Cubs for the eighth time in nine meetings dating to the final week of last season.

Jones’ ninth homer of the season tied it at 1 in the sixth, and he doubled leading off the eighth against reliever Sean Marshall (5-2). After Lastings Milledge grounded out and Ryan Doumit was intentionally walked, Crosby lined a 3-2 pitch by Marshall into center field to score Jones.

Evan Meek (3-1) pitched a scoreless eighth for the victory and Octavio Dotelfinished up for his 11th save in 13 opportunities.

At Houston, Carlos Maldonado and Ryan Zimmerman hit three-run homers off Chris Sampson, long after Roy Oswalt was ejected, and Washington put together the highest scoring inning in Nationals’ history.

Zimmerman and Adam Dunndrove in four runs apiece and both chipped in during a nine-run seventh, the team’s biggest inning since relocating from Montreal before the 2005 season.

Rookie Luis Atilano (5-1) allowed three earned runs on six hits in 6 2-3 innings, his longest outing of the season.

Dunn broke a 1-all tie with a three-run double off Oswalt in the third. Oswalt (3-7) gave up more than three earned runs in a start for the first time this year.

Oswalt was ejected soon after in the third.

At St. Louis, Albert Pujols continued his torrid hitting and rookie Jaime Garciao vercame a shaky start for St. Louis, which moved into a first-place tie in the NL Central with Cincinnati.

Pujols extended his streak of reaching base to nine straight plate appearances with two intentional walks and a single his first three times up. He hit into a double play in the fifth inning. Pujols added an RBI single in a five-run sixth, one day after hitting three homers at Chicago.

Jonny Gomes’two-run single in the first ended a run of 19 scoreless innings at home to start the season by Garcia (5-2), who allowed seven hits and two earned runs over six innings.

Bronson Arroyo(5-3) had been 5-0 with a 2.66 ERA in his previous six outings for Cincinnati. He faltered after a rain delay of just over an hour after three innings, coughing up a 3-1 lead and failing to last six innings for only the second time.

At Los Angeles, a balk by Esmerling Vasquez allowed Los Angeles’ Casey Blake to score the winning run in the bottom of the ninth.

The inning began with a walk to James Loney and a broken-bat single by Blake. Loney made a break for third base with Augie Ojeda charging in for a possible bunt, but was tagged out in a rundown after Ojeda retreated back toward the bag. Blake advanced to third on a ground out by Russell Martin.

Blake DeWitt worked the count to 2-2 before second base umpire Tim Tschida signaled balk after some frantic gyrations by Blake and Dodgers third base coach Larry Bowa. Blake removed his helmet and jogged home.

Jonathan Broxton (3-0) pitched the ninth to earn the victory. Vasquez (0-1) took the loss, the Diamondbacks’ season-high eighth straight.