MIAMI -- Jake Peavy got back in the win column despite making a reluctant early exit.
Peavy (4-1) allowed two runs, five hits, walked two and struck out eight in 5 2/3 innings. It was the 2007 National League Cy Young Award winner's first win since April 11 and marked the first time in 11 consecutive starts he failed to go at least six innings.
Peavy fell one out short of earning a quality start. He was replaced after walking Luis Gonzalez with two out in the sixth, having thrown 112 pitches.
"I do what I'm told," Peavy said. "When the manager takes the ball from you after 5 2/3 you are not happy -- that's all there is to it."
Padres manager Bud Black said Peavy didn't have his best stuff.
"His slider was looking bigger at times than normal," Black said. "He had some inconsistent command with the slider. That's why his pitch count got up a little. He pitched ... well enough to win."
Mike Jacobs homered and Jeremy Hermida had three hits for the Marlins, who have dropped four of five.
Ricky Nolasco (1-3) gave up six runs and 10 hits in 4 2/3 innings. He walked two and struck out two.
"He couldn't put hitters away," Marlins manager Fredi Gonzalez said.
Nolasco agreed. "I was letting guys back in the count when I shouldn't have," he said.
San Diego's Adrian Gonzalez homered off Logan Kensing in the ninth. It was Gonzalez's third hit of the game and seventh home run of the year.
Josh Bard's run-scoring double capped a three-run fifth that chased Nolasco and gave the Padres a 6-2 lead.
San Diego went ahead 3-2 in the second on Iguchi's two-out, two-run double.
With one out, Paul McAnulty was hit by a pitch. He took third on Brian Giles' two-out single. Iguchi drove in both when he doubled to left on a hanging slider.
"After we gave up the lead, we got back into the game with the lead and that got us going," Iguchi said.
San Diego entered the game having lost four of five and nine of 11.
"There's a sense of urgency every time we take the field with the way we've been playing," Peavy said. "Absolutely, we need to win my starts, we need to win everybody's starts."
Jacobs hit his eighth home run, a two-run shot to left, to give Florida a 2-1 lead with two out in the first.
Giles fouled out into a double play to end the fourth. Third baseman Jorge Cantu caught Giles' pop while on a full run toward the wall along third, then spun and threw to shortstop Hanley Ramirez, who covered third base. Ramirez tagged McAnulty, who tried to advance after tagging up from second.
Ramirez failed to reach base, snapping his string of doing so in 47 straight home games.
Padres RHP Greg Maddux will try to become the ninth pitcher to win 350 games on Sunday. He'll oppose Marlins LHP Andrew Miller. ... San Diego SS Khalil Greene left the game in the seventh because of left-eye irritation. He was listed as day to day. ... The crowd of 37,689 was the Marlins' second-largest attendance of the year. There were 38,308 fans at opening day.