Luis Gonzalez singled home Scott Hairston in the ninth last night to give the Arizona Diamondbacks a 6-5 victory over visiting San Francisco, stopping the Giants' 10-game winning streak.

Steve Finley homered twice to tie Albert Pujols for the major league lead with 16, and the Diamondbacks won for just the third time in 13 games.

Hairston hit his second home run in as many nights, and third in the 13 games he's played since being called up from Class AAA Tucson.

Hairston and Finley homered on consecutive pitches from Scott Eyre to tie it at 5-5 in the seventh after the Giants had rallied for four runs in the top of the inning to go up 5-3.

When Hairston grounded to third leading off the ninth, he collided with first baseman Damon Minor as the throw from Edgardo Alfonzo sailed past. It was ruled a hit, with Hairston awarded second on the errant throw. Finley's groundout moved Hairston to third.

Danny Bautista was walked intentionally to set up the double play and bring up Gonzalez, who lined a 3-2 pitch into the gap in right-center.

* CARDINALS 8, PIRATES 1: Albert Pujols homered and had two doubles among his five hits and drove in three runs, Jeff Suppan pitched into the eighth to lead visiting St. Louis.

The Cardinals overcame the loss of third baseman Scott Rolen, who was hit in the batting helmet with a pitch by Ryan Vogelsong in the first.

Rolen remained in the game and scored in the Cardinals' three-run first, but did not take the field in the bottom half. He was taken out for precautionary reasons and will be reevaluated today.

* ASTROS 5, CUBS 3: Pinch hitter Michael Lamb had a go-ahead double in the eighth, and visiting Houston took advantage of an error in the win over Chicago. With two outs and the score 3-3 in the eighth, Brad Ausmus hit a weak grounder to second baseman Todd Walker, who rushed his throw. The ball sailed wide of first baseman Derrek Lee, pulling him off the bag, and put runners on first and second with two outs. Lamb then lined a hit into left-center off Kyle Farnsworth (0-3).

* ROCKIES 7, PADRES 1: Charles Johnson doubled three times and drove in four runs to help Colorado beat San Diego for its first back-to-back road wins of this season.Johnson doubled in each of his first three at-bats, giving him five straight doubles over two nights, one short of the major league record for consecutive games.

* BRAVES 7, EXPOS 6: Rookie Nick Green and J.D. Drew hit consecutive homers in the ninth, and Atlanta rallied at home.

* METS 4, PHILLIES 1: Todd Zeile hit a tying solo homer in the eighth and a go-ahead RBI single in the 10th to lead visiting New York.

* REDS 7, MARLINS 6: Adam Dunn homered twice, including a tiebreaking drive in the 10th, and Ken Griffey Jr. homered for the third time in five games to lead visiting Cincinnati.

* BREWERS 4, DODGERS 1: Doug Davis pitched six scoreless innings on three days' rest in place of Ben Sheets to lead visiting Milwaukee over Los Angeles.