By The Associated Press
PHOENIX -- Jeff Karstens has given the Pittsburgh Pirates a perfect start.
Almost a perfect game, too.
The recently acquired right-hander set down his first 23 batters before Chris Young's two-out double in the eighth inning and finished with a two-hitter Wednesday in a 2-0 victory over the Arizona Diamondbacks.
Karstens (2-0) has tossed 15 scoreless innings -- against a pair of first-place teams -- since coming to Pittsburgh in a six-player trade July 26 that sent outfielder Xavier Nady and reliever Damaso Marte to the New York Yankees. This masterpiece followed a 3-0 victory Friday over the Chicago Cubs at Wrigley Field.
The 25-year-old Karstens outpitched Randy Johnson, who tossed baseball's most recent perfect game in May 2004. Karstens also got his first two major league hits off the five-time Cy Young Award winner and scored on Doug Mientkiewicz's eighth-inning double.
Making his 11th career start and 17th appearance, Karstens struck out four and walked one.
Freddy Sanchez homered in the fourth off Johnson (9-8), who had his five-game winning streak snapped despite a strong outing.
Cubs 11, Astros 4
CHICAGO (AP) -- Mark DeRosa hit a grand slam and Alfonso Soriano had a three-run homer during an eight-run third inning that carried Chicago past Houston.
DeRosa's fourth career slam made it 5-4 and propelled the Cubs to their ninth win in 11 games. The surging Soriano capped the burst with his second three-run shot in two days. He has 20 hits, six homers and 14 RBIs in his last 11 games after going 2-for-5 while driving in three runs.
DeRosa had two hits and drove in five runs after going 3-for-5 with three RBIs the previous day.
The Cubs roughed up Brandon Backe (6-11), who allowed a career-high 11 runs and nine hits in 3 1-3 innings. He walked six.
Jason Marquis (7-7) hit an RBI double and won for the first time since June 21.
Carlos Lee hit a three-run homer for Houston.
Brewers 6, Reds 3
CINCINNATI (AP) -- Struggling leadoff hitter Rickie Weeks matched his career high with four hits, and the slumping bottom of Milwaukee's batting order chipped in, too, setting up a victory over Cincinnati.
The Brewers took two of three in a series that started with slugger Prince Fielder shoving pitcher Manny Parra in the dugout twice during a 6-3 loss Monday night, when Milwaukee's NL wild-card lead was trimmed to a half-game over St. Louis.
Fielder apologized a day later, and the Brewers were on their best behavior the rest of the way. They even managed to get some clutch hits, the thing they've missed the most during their recent slide of seven losses in 11 games.
Jeff Suppan (7-7) handled the Reds' free-swinging lineup for the third time this season, allowing an RBI groundout and a two-run homer by Jay Bruce. Eric Gagne struck out Edwin Encarnacion with two runners aboard to end the eighth. Salomon Torres pitched the ninth for his 22nd save in 26 chances.
Weeks drove in a pair of runs with his second single off Homer Bailey (0-6).
Giants 3, Braves 2
SAN FRANCISCO (AP) -- Tim Lincecum pitched eight innings for his first win in more than three weeks and Aaron Rowand homered and drove in three runs to help San Francisco beat Atlanta.
Randy Winn added four hits, including the 1,500th of his career, and scored twice for the Giants. San Francisco won for the fourth time in six games after going 4-8 following the All-Star break.
Brian Wilson pitched a perfect ninth for his NL-leading 32nd save in 34 chances.
Lincecum (12-3) is 11-2 in 19 starts following a Giants loss. The NL strikeout leader allowed five hits and struck out eight to earn his first win since July 13.
San Francisco did all its damage early against Chuck James (2-5), making his second start since being called up from the minors last week.