MIAMI -- The Marlins found themselves in double trouble all night.
A bid for a second straight comeback win over Arizona on Friday night was pretty much put to rest by four double plays.
The double plays, combined with home runs from Cliff Pennington and Aaron Hill, lifted the D-backs to a 3-2 win over Miami at Marlins Park.
"We hit into quite a few double plays tonight," manager Mike Redmond said. "We're in one of those ruts where we're having a tough time getting that big hit in big situations, and unfortunately tonight, it killed our rallies with double plays. That happens sometimes."
Trevor Cahill worked 6 2/3 innings, giving up two runs on six hits. Three times, the right-hander was assisted by double plays.
And in the eighth inning, with runners on first and second, lefty Oliver Perez got Jarrod Saltalamacchia to tap into an inning-ending double play.
Saltalamacchia and Casey McGehee each were victimized twice by double plays.
"They hurt us tonight, for sure," McGehee said. "They're going to happen from time to time. It doesn't make you feel any better about it."
McGehee did have a single, extending his hitting streak to nine games.
"He's an All-Star-caliber hitter, so he's not trying to walk," Cahill said of the Miami third baseman. "It's just one of those things where I caught a couple of breaks and was able to get through it."
The loss prevented the Marlins from reaching the .500 mark for the first time since they were 53-53 on July 29. Miami fell to 30-18 in one-run games.
It was one of those strange games that took on two personalities. All the runs were scored in the first inning, giving the impression the game would be a slugfest. But then each starter settled, and the bullpens prevented any further scoring.
"It didn't have the makings of those being the last runs scored, the way the game started out for either side," McGehee said.
Generating consistent run production has been an issue for the Marlins, and it was the case again against Cahill.
In the seventh inning, Miami had a big chance. With two outs, Adeiny Hechavarria singled and move to second on Cahill's wild pitch. After pinch-hitter Reed Johnson was hit by a pitch, the D-backs went with reliever Matt Stites. The second wild pitch in the inning moved two runners into scoring position. Christian Yelich walked, but Donovan Solano bounced to short to end the inning.
Brad Hand settled after his rough first inning, in which he gave up all three runs. The lefty made it through seven innings without any more damage. He gave up five hits.
"The first inning I just gave up the two homers, left two balls up and that's the difference," Hand said. "After that, I kind of settled in a little bit. Still fighting it, but I managed to get through seven."
The 107 pitches Hand threw were the second most in his career, topped only by the 114 he threw against the Braves on Aug. 8, 2011.
In his last start, a loss at Cincinnati, Hand was taken deep twice by Reds catcher Devin Mesoraco, who belted a grand slam and a two-run shot.
Hand's trouble with the long ball carried over to the first inning on Friday night.
Arizona struck for two homers, which led to an early three-run lead. Pennington belted a solo shot, with the ball bouncing off the left-field foul pole netting. And with two outs, Hill smashed a two-run homer.
"This guy's got a lot of movement for a lefty -- good velo and a lot of movement," Hill said. "Going up there just looking for something up. I typically don't swing at the first pitch, but it worked out."
Miami bounced back with two runs in the first. Giancarlo Stanton and Garrett Jones each delivered RBI singles, but the offense couldn't cash in as the game progressed.
Like the rest of the night, the double play was a factor. After making it a one-run game, Miami still had first and second with one out when Saltalamacchia bounced back to the mound. Cahill turned the inning-ending twin-killing.
"Both teams come out swinging the bats and then get zeroes the rest of the way," Redmond said.