Saunders (2-1), starting the 165th game of his 8-year career, recorded his third shutout and seventh complete game. He struck out four and walked two while throwing 116 pitches.
In his previous outing, Saunders retired 13 of the last 14 men he faced but still took the loss in a 3-2 setback against Atlanta.
Saunders assisted his own cause with a second-inning sacrifice fly that gave the Diamondbacks a 2-0 lead. Miguel Montero had an RBI single in the first and doubled home a run in the ninth.
Aaron Hill's solo shot in the sixth was his fourth home run of the season.
Arizona got to Miami starter Carlos Zambrano (0-2) for three runs on 10 hits in six innings. The Marlins suffered their sixth straight loss.