PHOENIX -- Miguel Cabrera and Florida's young pitchers have the Marlins winning again.
Dan Uggla doubled, tripled and score three runs for the Marlins, who took two of three from Arizona.
Rookie Ricky Nolasco (11-7) went 7 1/3 innings, giving up three runs and six hits. He improved to 5-1 in his last six starts. It was the 37th victory by a Marlins rookie this season, most in the majors.
Florida is the first team to have three rookies with at least nine victories since the 1986 Texas Rangers.
"Man, they're great," Cabrera said. "They know how to pitch at this level. The young people on this team, they're pretty good and I think they're only going to get better."
After being swept at home by the Dodgers, the Marlins have gone 4-2 on the road and are headed to Los Angeles for a rematch
"It says a lot," Nolasco said. "It says how we're maturing, and we're not going to roll over for anybody."
Cabrera has led the resurgence, hitting .556 (15-for-27) during his multihit spree. His 49th multihit game tied him with Chase Utley of Philadelphia for most in the National League.
"We went in today saying we weren't going to let Cabrera beat us," Arizona catcher Chris Snyder said. "We left one over the plate for him and that was the pitch he hit through the hole at second for a couple of RBI, then later in the game (Tony) Pena left one up to him and that's the one he put in the stands."
Arizona rallied for two runs in the ninth off Joe Borowski. Conor Jackson hit an RBI triple and scored on a groundout before Borowski got his 26th save in 29 chances.
Stephen Drew and Luis Gonzalez hit solo home runs for the Diamondbacks, whose 4-5 homestand cost them a chance to take over the NL wild-card lead.
Florida scored three unearned runs off Enrique Gonzalez (3-4) in the fourth inning after third baseman Chad Tracy committed two errors on one play. Gonzalez pitched six innings, and also doubled and singled in two at-bats.
Uggla doubled with one out in the first and scored on Mike Jacobs' single. The Marlins went on to load the bases with one out, but Jeremy Hermida struck out and Alfredo Amezaga bounced in to a fielder's choice.
Nolasco retired the initial six batters before Drew hit the first pitch of the Arizona third deep into the right-field seats to tie it at one.
Florida took the lead for good with three unearned runs in the fourth.
With Marlins at first and third and two outs, Tracy bobbled Uggla's sharp grounder, then threw wildly to first, allowing the runners to advance to second and third. On an 0-2 pitch, Cabrera singled both of them home to put Florida up 4-1.
Arizona manager Bob Melvin said there was no thought of walking Cabrera to get to cleanup batter Mike Jacobs.
"To put added guys in the middle of the game with Jacobs behind him is a tough thing to do," Melvin said.
Gonzalez's 415-foot shot into the swimming pool area in right-center led off the Diamondbacks' fourth to cut the lead to 4-2.
Arizona made it 4-3 in the sixth when Orlando Hudson drew a leadoff walk, took second on a wild pitch, advanced to third on a groundout and scored on Tracy's single.
Pena relieved in the seventh and gave up a leadoff triple to Uggla and a 418-foot homer to right-center by Cabrera.
"I was like 'Wow,"' Girardi said. "There's not a lot of players who can do that."
Both of Cabrera's big hits were to the opposite field.
"That's my game," he said. "I hit it where they pitch it to me."
Drew extended his hitting streak to 10 games. ... Tracy has 18 errors, twice as many as any other Arizona player. ... Rookies earned both wins for Florida in the series. Josh Johnson won the opener Friday night. ... Arizona CF Eric Byrnes, 0-for-11 in the series, slammed the bat down when he popped out to end the fifth. The bat broke and a small piece of the debris hit catcher Miguel Olivo in the face. Olivo wasn't hurt.