PHOENIX -- Juan Encarnacion and Carlos Delgado provided the support Brian Moehler was waiting for.
"We all realize that not every night you're going to be able to score nine runs, but putting together some good at-bats is going to give us some good results," Delgado said.
Moehler, who is 6-6 despite an impressive 3.36 ERA, won his fourth straight -- his best run since winning five in a row for Detroit in August 2000. The Marlins have won consecutive games for the first time since July 7.
Moehler allowed two runs and 10 hits. He walked none, struck out five and had an RBI double -- just his third hit in 56 career at-bats and first for extra bases.
Delgado and Encarnacion hit two-run homers off Arizona starter Brandon Webb in the Marlins' six-run sixth that made it 9-2. Moehler drove in the last run with a liner to the gap in right-center field off Greg Aquino.
Alex Gonzalez and Luis Castillo had run-scoring singles for the Marlins.
Troy Glaus had an RBI double and Shawn Green drove in a run for the Diamondbacks, who lost for the fourth time in six games.
Arizona loaded the bases with two outs against reliever Travis Smith in the eighth, but Jim Mecir came on to strike out pinch-hitter Tony Clark.
Webb (8-7) gave up eight of his 10 hits and all eight runs in the fifth and sixth innings. He went 5 1/3 innings, walked two and threw a wild pitch, falling to 0-4 in five starts since a win at San Francisco on June 23.
"I haven't been able to make the pitches when I want to and stop the big inning, so it's something we'll have to work on in the bullpen," Webb said.
The Marlins scored three runs in the fifth.
Miguel Cabrera had a leadoff single, Paul Lo Duca walked and Encarnacion hit a ground-rule double over the left-field wall. Lowell followed with a sacrifice fly, and Gonzalez made it 3-1 with a single.
The rally ended a string of eight consecutive batters retired by Webb, a sinkerball specialist who was helped by groundball double plays after allowing leadoff singles in the first two innings.
Florida put the game away in the sixth.
Castillo hit a run-scoring single before Delgado's 20th homer made it 6-2. After an out, Lo Duca singled and Encarnacion hit his homer.
Moehler held the Diamondbacks to one run in the fourth despite giving up four straight singles -- including Green's for an RBI -- with no outs.
With the bases loaded, Moehler struck out Jose Cruz Jr., got Chris Snyder to pop out and then retired Webb on a grounder to end the threat.
"I was just trying for damage control hopefully, just give up a couple of runs," Moehler said.
Florida manager Jack McKeon called the inning a turning point.
"The guys in the dugout were saying, 'Hey, let's go get him some runs,'" McKeon said.
Arizona manager Bob Melvin agreed.
"That really swung the momentum their way, when we don't score and they come back and score three," Melvin said.
Arizona made it 3-2 on Glaus' fifth-inning double.