CINCINNATI - Aubrey Huff's bases-loaded single highlighted Houston's seventh-inning rally Wednesday, and the Astros avoided a sweep with a 7-3 victory over the Cincinnati Reds.
Willy Taveras bunted for a single that extended his hitting streak to a club-record 26 games, and Adam Everett homered and drove in a pair of runs for the fading Astros. The defending NL champions won for only the third time in their past 12 games, a slide that has pushed them to the back of the pack of playoff contenders.
The Reds had won four in a row - their best streak in more than a month - but lost their cool during the Astros' six-run rally in the seventh that turned on an ejection.
Roy Oswalt (10-8), who missed his last start because of a bruised pitching hand, improved to 16-1 career against Cincinnati. The right-hander gave up only two runs in six innings.
GIANTS 7, DIAMONDBACKS 6
In San Francisco, rookie Eliezer Alfonzo delivered the go-ahead hit for the second consecutive game and Pedro Feliz ended an 0-for-15 stretch with a tying two-run double in the seventh, lifting San Francisco to a victory over Arizona.
Alfonzo tripled to right-center moments after Feliz doubled to center against Brandon Lyon (1-3) to tie it at 6.
The Giants completed a three-game sweep of the stumbling Diamondbacks, who lost their fourth in a row and sixth of seven. Alfonzo had a go-ahead double in the eighth inning of Tuesday's 7-6 victory.
Eric Byrnes hit a two-run single in the sixth inning to give Arizona the lead and rookie Chris Young had his first major league homer with a two-run shot in the fourth, but Arizona's bullpen couldn't hold the lead.
Ray Durham hit a three-run homer to establish a new career high for RBI in a season and Giants slugger Barry Bonds had back-to-back multihit games for the first time since Aug. 20-21, 2004, against the New York Mets.
Steve Kline (4-3) pitched one inning for the win and embattled closer Armando Benitez, booed yet again when he took the mound, pitched a perfect ninth for his 16th save in 24 chances a day after being pulled with two outs in the final inning. Benitez struck out Luis Gonzalez swinging for the final out, then pumped his right fist and pointed to the sky in celebration.
Bonds singled to center in the first to drive in a run and Durham followed with a shot that barely carried into the right-field stands for his 20th home run.
Durham, among a handful of key Giants players set to become a free agent after the season, extended his season-high hitting streak to 13 games - the best by a Giants player this year - and matched his career-best homers total that he also accomplished with the White Sox in 2001.
MARLINS 9, NATIONALS 7
In Miami, Miguel Cabrera homered twice and drove in four runs, helping Florida complete a three-game sweep of Washington.
Cabrera, who went 3-for-4 and scored three times, became the fifth active player to reach 100 career home runs before his 24th birthday. He also became the sixth-youngest player overall to reach the milestone.
Dan Uggla, Mike Jacobs and Hanley Ramirez also had two hits for the Marlins, who batted around in the first and second innings while taking an 8-1 lead.
Scott Olsen (10-7) pitched six innings, giving up three runs on seven hits, to rebound after his shortest outing of the season and snap a personal three-game losing streak.
Olsen became the third Marlins rookie pitcher to reach 10 victories this season, marking the first time since the 1952 Brooklyn Dodgers - and only the third time since 1900 - that a team has had three rookies with at least 10 wins.
Tony Armas Jr. (8-9) lasted only 1 2-3 innings for Washington, giving up eight runs - five earned - and 10 hits.
It was his shortest outing of the season and his third loss in three decisions against Florida.