SAN FRANCISCO - Yusmeiro Petit almost got the perfect revenge against his former team.
Petit lost his bid for a perfect game on Eric Chavez's two-out single in the ninth, and then recovered to retire the final batter in the San Francisco Giants' 3-0 victory over the Arizona Diamondbacks on Friday night.
Petit (3-0) struck out Chris Owings to begin the ninth, and Gerardo Parra followed with a routine grounder to second. He then went to a full-count on Chavez, who dumped a pinch-hit single just in front of Hunter Pence in right field.
The crowd of 41,190 fans responded with a standing ovation for Petit, who struck out seven in his 95-pitch gem. A.J. Pollock grounded out to third to finish Petit's first career complete game.
Pence had three hits, including a home run, and scored all three runs.
Corbin (13-6) tossed eight strong innings, giving up eight hits. He walked one and struck out five.
CARDINALS 12, PIRATES 8
ST. LOUIS (AP) — Carlos Beltran and Jon Jay had three hits apiece, and St. Louis beat Pittsburgh to move within a half-game of the NL Central leaders.
The Cardinals opened a seven-run seventh with nine straight hits off three relievers, including Yadier Molina's three-run homer off Bryan Morris. The Pirates have lost two straight, both blowouts, and remain a win shy of clinching their first winning season since 1992.
Jay had three RBIs and Beltran drove in two runs. Joe Kelly (8-3) allowed one run and eight hits over six innings while improving to 7-0 with a 1.93 ERA in his last eight starts.
Pittsburgh starter A.J. Burnett (7-10) gave up five runs in three innings in his shortest outing of the year.
REDS 3, DODGERS 2
CINCINNATI (AP) — Joey Votto emerged from his deep slump with a single and a two-run homer, leading Cincinnati to the victory.
The NL West-leading Dodgers lost Chris Capuano to a mild groin strain in the second inning, when he grimaced on a pitch to Zack Cozart. Already this week, the Dodgers had to push Hyun-Jin Ryu back from a scheduled start because of a sore back.
Mike Leake (12-6) emerged from his recent slump, helping the Reds get their fourth win in their last five games. Leake allowed five hits, including Hanley Ramirez's two-run homer, in 7 2-3 innings.
Aroldis Chapman, pitching for the fourth day in a row, fanned three in the ninth for his 35th save in 40 chances.
Votto hit a two-run homer — his 22nd — off J.P. Howell (2-1) in the fifth inning for a 3-2 lead.
MARLINS 7, NATIONALS 0
MIAMI (AP) — Jose Fernandez allowed one hit and struck out nine in seven innings to lead Miami to the win.
Giancarlo Stanton homered and drove in three runs for the Marlins. Logan Morrison hit an estimated 484-foot home run, which would be the longest in the majors this season, and drove in two runs.
Fernandez (11-6) retired his first 14 batters before walking Adam LaRoche. He also went 2 for 3 at the plate.
Stanton hit a two-run single in the first inning and Placido Polanco followed with a sacrifice fly to give Miami an early 3-0 lead against Dan Haren (8-13).
PHILLIES 2, BRAVES 1
PHILADELPHIA (AP) — Cody Asche hit a two-run homer in the seventh inning, and Philadelphia ace Cliff Lee outdueled fellow left-hander Mike Minor.
Lee (12-6) allowed one run on Andrelton Simmons' leadoff homer in the third while striking out 10 in eight innings. He gave up two hits and walked none.
Jonathan Papelbon finished for his 25th save in 31 chances.
Asche's homer came on the first pitch he saw from Minor in the seventh. In his first time facing the Phillies this season, Minor (13-6) allowed four hits in seven innings, striking out nine and walking one.
CUBS 8, BREWERS 5
CHICAGO (AP) — Rookie Junior Lake hit his first career grand slam in Chicago's five-run first inning, leading the Cubs to the victory.
Lake was 2 for 4 and has five homers since being called up July 19.
The Cubs and Brewers are tied for fourth place in the NL Central at 60-80.
Carlos Villanueva (5-8) struck out five in 2 1-3 scoreless innings to get the win. Kevin Gregg got the final three outs for his 30th save in 35 chances.
Brewers starter Kyle Lohse (9-9) allowed 11 hits and seven runs in five innings. Scooter Gennett had a pinch-hit, three-run homer in the eighth for Milwaukee.
PADRES 4, ROCKIES 3
SAN DIEGO (AP) — Pinch-hitter Jesus Guzman singled in the winning run in the ninth inning to give San Diego the win.
Chase Headley started the rally with a tying homer against Rex Brothers (2-1). The Padres went on to load the bases with one out, and Guzman's hit went over third base.
Huston Street (2-4) got the win despite allowing a home run to Todd Helton on his first pitch in the ninth. Helton's 13th homer was the first run allowed by Street in 20 1-3 innings.
San Diego's Will Venable continued his hot streak with a leadoff homer in the first. It extended Venable's career-best mark to 21 homers.
Rockies centre fielder Dexter Fowler left the game in the sixth inning when he aggravated a left knee injury. Fowler appeared to hurt the knee when he stole second base in the fifth.