CINCINNATI -- If Brian Giles is going to hit for power anywhere, it's at hitter-friendly Great American Ball Park against the Reds.
"I've hit the ball like that before," Giles said. "This park is a little more conducive to my power."
Giles, who also homered on Friday, has hit five of his seven home runs in the past three days. It's the third time in his career he has homered in three consecutive games and the first time he has hit five in that span.
"What'd he do, go from two to seven?" Reds manager Pete Mackanin said. "You've got to tip your cap to him."
Khalil Greene had four hits -- his fourth four-hit game this season -- and a career-high three doubles. He drove in three runs in support of Peavy, who improved to 5-0 in eight starts against the Reds, including 3-0 in four starts at Great American Ball Park. San Diego has won all eight of his starts against the Reds.
Morgan Ensberg had a pair of doubles and scored twice for the Padres, who took two of three in Cincinnati to salvage a road trip that started with three losses in four games in St. Louis.
The Padres set a franchise record with nine doubles and 12 extra-base hits on a day with a first-pitch temperature of 91 degrees that only went up.
"Factor in the Midwest humidity, and this was a good win on the road," San Diego manager Bud Black said. "A good win all the way around."
Peavy (13-5) allowed seven hits and four runs with one walk and five strikeouts while improving to 7-0 on the road this season, the best road record in the majors. The right-hander has won nine consecutive road decisions dating to a 4-0 loss at San Francisco on Sept. 8, 2006.
"I didn't have great stuff, but I was able to battle through it," Peavy said. "I lost command on my fastball late, and that's what killed me."
Right-hander Bronson Arroyo (5-13) gave up nine hits and five runs with one walk and five strikeouts in six innings for the Reds, who've lost three of their last four games.
"I didn't have great stuff," Arroyo said. "I had OK command, but I had trouble getting good zip on my fastball."
Giles, who also walked three times, hit Arroyo's fourth pitch of the game into the right-field seats, his first career leadoff homer. He followed up with a two-out solo shot to right-center in the fourth that extended San Diego's lead to 5-0.
"I feel OK," said Giles, who missed three games Aug. 2-4 with a right ankle sprain. "I don't feel totally locked in, but I've been able to get the ball up and on the barrel. Like I said, they might not be home runs in most places, but it's a good time to hit them -- in this place."
His two-homer game was the 18th of his career and gave Giles 26 career home runs against the Reds, more than any other opponent. He has 25 against St. Louis.
Greene had a two-run single in the third and a run-scoring double in the seventh -- giving him six RBI in the series -- and Peavy drove in a run in the fourth with the first sacrifice fly of his career.
The Reds snapped Peavy's streak of consecutive scoreless innings at 23 in the fifth. Jeff Keppinger led off with a triple, the first of his career, and scored on Edwin Encarnacion's groundout. Peavy hadn't allowed a run since the Astros scored in the first inning of a 10-5 Padres win at Houston on July 27.
The Reds added two runs in the sixth. Pinch-hitter Josh Hamilton reached third on left fielder Rob Mackowiak's three-base error and scored on Scott Hatteberg's double. Hatteberg later scored from third on Adam Dunn's sacrifice fly.
- RF Ken Griffey Jr. did not start.
- The Reds returned Hamilton from a rehab assignment and activated him from the 15-day disabled list.
- IF Mark Bellhorn was designated for assignment.
- Reds CF Norris Hopper extended his career-best hitting streak to 10 games.
- Giles' homer to lead off the game was the second for the Padres this season. Scott Hairston hit the other on Aug. 4 against San Francisco.
- Reds C David Ross left the game in the bottom of the third inning after developing a headache and concussion-like symptoms from a collision with Mike Cameron at the plate in the top of the inning.
- Jeff Conine doubled in the ninth as a pinch hitter, his 2,000th career appearance.