He hit a two-run single in the fourth inning and added a two-run homer in the seventh.
Mike Jacobs hit an RBI single; a run scored on a throwing error by Chad Tracy; Dan Uggla had three runs and two hits; and Josh Willingham had three hits for the Marlins (55-62), who have split their last six games.
In 7 1/3 innings, winner Ricky Nolasco (11-7) surrendered three runs and six hits.
Joe Borowski earned his 26th save.
Stephen Drew and Luis Gonzalez each hit solo home runs; Conor Jackson, Shaun Green, and Chad Tracy also had an RBI apiece; while starting and losing pitcher Enrique Gonzalez and Drew had two hits for the Diamondbacks (59-58), who have split their last four games.
In six innings, Gonzalez (3-4) gave up five hits and four runs.