HOUSTON (AP) -- Three days after they were swept by Colorado, the Pittsburgh Pirates feel much better after doing the same to Houston.
Jason Bay hit a two-run homer and Pittsburgh earned its first road sweep this season with an 8-7 win over the Astros on Wednesday.
Doug Mientkiewicz drove in two runs, starter Ian Snell had an RBI single and Franquelis Osoria (4-3) pitched two innings of scoreless relief as Pittsburgh finished off its first sweep since taking three from San Francisco at PNC Park from May 6-8.
"As bad as we played in Colorado, to turn around and do this three days in a row was important," said Mientkiewicz, who had four hits. "We needed these three bad."
Damaso Marte shut out the Astros in the ninth for his fifth save in seven chances.
The Pirates have won three straight road games for the first time this season and have their first three-game victory streak since taking six straight from May 6-12.
After getting outscored 28-9 over four games in Denver, the Pirates outscored the Astros 25-12 in three games at Minute Maid Park.
"To do that here, especially coming from Colorado, was a big boost for us," said Pittsburgh manager John Russell.
On Tuesday, the Astros traded for left-hander Randy Wolf and general manager Ed Wade said the move was an indication that the team's brass hasn't given up on the season. After Wednesday's loss, the players were conceding how much ground they have to make up.
"What can you say when you just got swept by the Pirates when you're trying to get back to respectability?" said first baseman Lance Berkman. "Right now, we have all the earmarks of being a bad team. That's not saying we can't come out of it. All you can say now is we're bad."
The Astros came into this series after taking two of three from the first-place Cubs.
"I'm very disappointed," said catcher Brad Ausmus. "We go against the Cubs and win two of three and then get swept by the Pirates. I feel like we made two steps forward and six steps back. No one in this locker room is happy with what we're going right now."
Reliever Geoff Geary (2-2) allowed two runs in the seventh, the first runs he allowed in nine appearances covering 14 2/3 innings this month.
Nate McLouth led off the game with a single off Brian Moehler, went to third on Freddy Sanchez's single and scored on Ryan Doumit's sacrifice fly. Bay then hit a two-run homer to make it 3-0, giving him 13 RBIs in his last nine games.
Xavier Nady singled to extend his hitting streak to 12 games. After Mientkiewicz singled, Snell blooped a hit into right field for his first RBI of the season and a 4-0 lead.
Snell faced trouble in the bottom of the first, giving up a single to Michael Bourn between walks to Matsui and Berkman. Loretta scored two with a line-drive single to left and Berkman came home on Hunter Pence's grounder.
Snell's run-scoring hit was no consolation for the way he pitched.
"It was a bad game, everybody knows it," he said. "I let the game speed up on me. I wasn't really focused. I was just out there trying to throw the ball wherever."
Berkman mishandled McLouth's bouncer leading off the second inning, uncharacteristic for a team that came into the game with the fewest errors in the NL (48). McLouth scored on Sanchez's double, his seventh RBI of the series.
With two outs in the Houston second, Matsui drove an 0-1 pitch into the right-field seats, his second homer of the season.
Back-to-back doubles by Adam LaRoche and Mientkiewicz in the third gave the Pirates a 6-4 lead. Mientkiewicz's double was Pittsburgh's ninth hit, the most Moehler had allowed in 14 starts this season.
The Astros got consecutive doubles by Ty Wigginton and Ausmus in the third to trim the deficit to 6-5.
T.J. Beam relieved Snell for the Houston fourth. Matsui singled, stole second and scored on Berkman's single to tie the game.
Geary retired the side in the sixth, but the Pirates loaded the bases with one out in the seventh and Mientkiewicz cracked an RBI single to right.
Pittsburgh added another run when Jason Michaels grounded into a fielder's choice. Michaels pinch-hit for Osoria, who retired the six batters he faced in the fifth and sixth.
Tyler Yates relieved for Pittsburgh in the seventh and gave up singles to Carlos Lee and Loretta. Pence grounded into a double play, but pinch hitter Geoff Blum followed with an RBI single to make it 8-7.
Bay has 138 homers for the Pirates, tied with Bill Mazeroski for eighth in team history. ... Astros RHP Roy Oswalt threw a short bullpen session before the game. Oswalt has been on the disabled list since July 19 with a strained left hip. He will throw another bullpen on Friday and is slated to start against Cincinnati on Monday. ... The Astros optioned RHP Jack Cassel to Triple-A Round Rock and activated Wolf, who was acquired in a trade with San Diego on Tuesday.