MIAMI -- Searching for a way to break another slump, the Florida Marlins again turned to their best option:
The Arizona Diamondbacks.
Ricky Nolasco pitched eight effective innings, and Cody Ross homered to lift the Marlins to a 3-1 win over the Diamondbacks on Friday night.
Nolasco (8-4) struck out nine and gave up just one run and six hits for the Marlins to end a four-game losing streak. Florida has beaten the Diamondbacks all four times this season.
"That was the most important thing today was to snap that losing streak and get on the right page again," Nolasco said. "We had a rough stretch of games there."
Nolasco struggled through a 33-pitch first inning to shut down Arizona. He is 7-1 in his last 10 starts with two no-decisions, and has been as close to an ace as the shaky Marlins' pitching staff has had this year.
"It seemed to mean like he got stronger as the game went on," Gonzalez said. "I don't know why you guys are spending time talking to me, because he did it all."
Orlando Hudson's sacrifice fly in the first inning was the only run for the Diamondbacks, who fell to 1-6 to on their nine-game road trip. Kevin Gregg pitched a perfect ninth for his 14th save in 18 chances.
"We're playing like dog crap out there," Diamondbacks third baseman Mark Reynolds said. "Right now, we got to make things happen. We've got to swing the bats better. We got off to a good start tonight and then we just shut it down."
The Diamondbacks have been the cure this season for seemingly every Marlins slump.
Arizona came to Miami on May 20 with the league's best record, only to be swept by a suddenly tough-pitching Marlins staff.
Again the Diamondbacks are in Florida facing a struggling Marlins team -- the same club that gave up 27 runs in a three-game sweep by the Tampa Bay Rays this week.
But again the Marlins rallied.
Jorge Cantu hit a two-run double off the left-center field wall in the third, giving the Marlins a 2-1 lead. Ross put the Marlins ahead 3-1 with his 13th home run of the season in the fourth.
"At the beginning of the game I couldn't tell which way we were going to go," Florida catcher Matt Treanor said. "It wasn't like (Nolasco) was laboring but he was searching to find a slot. The ball was coming out different than his previous starts. The big thing is he didn't give in and he kept pitching throughout the inning."
Micah Owings (6-7) gave up three runs on four hits in four-plus innings for Arizona. He was replaced by Edgar Gonzalez in the fifth, a pitch after Hanley Ramirez missed a home run a few feet foul of the left-field pole. Gonzalez then struck out the side.
Owings has lost five of his last six starts, with the one exception being a no-decision against the New York Mets on June 10. He hasn't won since May 25 against the Atlanta Braves.
"It's not a time frame for us to feel sorry for ourselves," Owings said. "It's time for us to dig a little deeper and pick each other up and keep working."
Owings sustained what he said was a lower back strain. He was favoring his right leg after stretching for a catch covering first base on a groundout by Mike Jacobs in the fourth. Owings walked off the injury, which he said was minor, and left an inning later. ... After three Diamondbacks players lost the ball under the Dolphin Stadium lights, 2B Hudson made a diving catch in left field on a pop fly by Josh Willingham in the third inning. ... The Marlins and Diamondbacks, two NL teams, are the only clubs not playing interleague games this weekend. ... Arizona is playing two series at Florida in the same season for the first time in club history.