run double in the 12th inning to give the San Francisco Giants a 7-6 win over the San Diego Padres, beating the National League West leaders for the first time in eight tries this season. Downs' third hit came off rookie Padres pitcher Cesar Ramos (0-1) and scored Ryan Rohlinger and Eli Whiteside, who reached on two-out singles. Eugenio Velez added an RBI single. Giants closer Brian Wilson gave up a two-run double to David Eckstein with two outs in the bottom of the 12th after Chris Denorfia and Yorvit Torrealba singled. Wilson intentionally walked Adrian Gonzalez before striking out Chase Headley to end the game and notch his 10th save in 11 chances. San Francisco's Dan Runzler (2-0) pitched a scoreless inning for the win as the Giants crept within half a game of the Padres. Cardinals 3, Nationals 2: In St. Louis, Ryan Ludwick homered to snap an eighth-inning tie and lift St. Louis over Washington. Ludwick went long off Tyler Clippard (7-3), one pitch after the Nationals reliever picked off pinch-runner Brendan Ryan at first. Cardinals starter Chris Carpenter (5-1) got the win despite allowing his seventh homer in nine starts, matching the total he yielded all of last season. Ryan Franklin worked the ninth for his ninth save in 10 chances. Pirates 2, Phillies 1: In Philadelphia, Zach Duke outdueled Roy Halladay with a strong six innings that guided Pittsburgh over Philadelphia. A night after the Pirates gave up 12 runs, Duke (3-4) limited Philadelphia to one run in six innings. Pirates relievers Evan Meek, Joel Hanrahan and Octavio Dotel retired nine of the final 10 batters. With a perfect ninth inning, Dotel recorded his eighth save in 10 chances, and snapped the Phillies' four-game winning streak. Phillies starter Halladay (6-2), who leads the major leagues in innings pitched, took the loss despite pitching his fourth complete game of the season, walking only one and striking out six. Reds 5, Brewers 4: In Cincinnati, Scott Rolen hit a tying, two-run homer in the ninth inning and Joey Votto delivered an RBI single off the wall to lift Cincinnati over Milwaukee. The first-place Reds pulled off their 10th win in their final at-bat, this one against veteran closer Trevor Hoffmann, who is struggling this season. Milwaukee lost its eighth in a row, its worst slump since 2006. Braves 3, Mets 2: In Atlanta, pinch-runner Brent Clevlen trotted home with the winning run on a throwing error by New York third baseman David Wright in the ninth inning as Atlanta edged the Mets. Marlins 8, Diamondbacks 0: In Miami, Brian Barden drove in two runs while replacing benched star Hanley Ramirez, helping Florida beat Arizona. Cubs 6, Rockies 2: In Chicago, Carlos Silva (5-0) pitched six strong innings, allowing only two runs, to remain unbeaten this season and help Chicago defeat Colorado. Dodgers 7, Astros 3: In Los Angeles, Manny Ramirez, James Loney and Casey Blake each drove in two runs to help Los Angeles overcome Houston.