Arizona ended a five-game losing streak and did so against Matt Harvey, who was touched for more runs than he had been in any other start this season.
After waiting out a long rain delay to begin the game, the Mets took the lead in the fourth on solo homers by David Wright and Josh Satin.
The Diamondbacks got to Harvey in the sixth, benefiting from a one-out walk to Miguel Montero and a single by Martin Prado. Ross then drove a two-out homer to left that gave Arizona the lead for good.
Harvey (7-2) gave up five runs on nine hits with nine strikeouts in six innings.
Randall Delgado (1-2) won for the first time as a member of the Diamondbacks, striking out nine over seven innings.