CINCINNATI -- Pittsburgh's Oliver Perez made his first start in more than 10 weeks, but it was Jason Bay and the Pirates who made Cincinnati's Luke Hudson look rusty.
Bay went 2-for-4 to improve to .400 (28-for-70) with 20 RBI and 20 runs in his last 20 road games.
"I can't explain my road success," the second-year outfielder said. "I'll just try to ride it out as long as I can."
Nate McLouth and Jack Wilson each had two hits and scored two runs to help send the Reds to their third loss in four games, all on their current homestand.
Perez made his first start since breaking his left big toe on June 26 at St. Louis. The left-hander lasted 4 1/3 innings, two outs short of the minimum needed to qualify for a win, and gave up five hits and three runs with two walks and five strikeouts. He threw 89 pitches, 54 of them strikes.
"I feel good," said Perez, who is 5-2 with five consecutive wins against the Reds in his career. "I threw too many pitches. That's why they took me out, but I used all my pitches, and I felt good."
Ryan Vogelsong (1-1) relieved Perez with runners on first and third and got Adam Dunn to hit into an inning-ending double play to get credit for the win.
"I thought he was better than I expected," interim manager Pete Mackanin said of Perez. "Our main concern was his pitch count, but he had a good angle all night. I thought that was as good as he's looked in a long time. It's just that his stamina is not what it could be."
Bay homered in the second and eighth innings for the Pirates, who won consecutive games for the first time since mid-August.
The Pirates capitalized on Hudson's control problems in the first, scoring two runs on just one hit, McLouth's leadoff single. Hudson, who threw 29 pitches in the inning, hit Jack Wilson and walked Bay before walking Craig Wilson with the bases loaded and giving up Rob Mackowiak's sacrifice fly.
Pittsburgh added three runs with two outs in the second inning on McLouth's single to right, Jack Wilson's double down the left-field line and Bay's 27th homer.
The Pirates made it 6-1 in the third on Mackowiak's leadoff walk, Freddy Sanchez's one-out double and Perez's sacrifice fly, his first RBI of the season.
Hudson (6-8) was replaced after hitting McLouth, his third hit batter in 2 2/3 innings. He allowed six runs on five hits and three walks with three strikeouts.
"We've talked about it before," interim manager Jerry Narron said. "When he commands the ball and throws strikes, he gets batters out. Tonight, he wasn't able to make key adjustments, and he struggled through it."
Hudson has allowed a combined 11 runs in 5 2/3 innings while losing his last two starts after going 4-1 with a 3.64 ERA in August.
"To be honest with you, in the bullpen and the first inning, that's the strongest my arm felt in a while," Hudson said. "I just got to the point where I was rushing through and was up in the zone, and I never could slow it down and get in synch.
"I really thought I was going to have a good game and give my team a chance to win, even after the first inning, but it didn't happen. I didn't get ahead of too many hitters tonight."
Dunn hit his 11th homer of the season against left-handers and 37th overall with two outs in the first inning. Dunn also scored from second on Wily Mo Pena's two-out single in the fifth.
Reds rookie Chris Denorfia led off the bottom of the fifth with his first career hit, a home run to make it 6-3. Rich Aurilia led off the sixth with a bunt single up the third-base line, moved to third on Sean Casey's single to center and scored on Pena's sacrifice fly.
Bay added another two-run homer off Kent Mercker in the eighth for an 8-4 lead.
"When he hit that second one, I took a deep breath," Mackanin said. "That was nice, because the momentum was going the other way."
The Pirates improved to 16-9 in the three-year history of Great American Ball Park. ... They won back-to-back games for the first time since Aug. 18 at New York and 19 at Philadelphia. ... Reds right-hander Todd Coffey turned 25 on Friday. ... Aurilia batted cleanup for the first time in his career. ... Bay has started all 140 Pittsburgh games this season ... His two-homer game was his second of the season and sixth of his career ... The last Reds player whose first major-league hit was a home run was Stephen Smitherman off Milwaukee's Matt Kinney on Aug. 25, 2003.