New York saw a four-run lead reduced to one heading into the seventh, but Brown came on as a pinch-hitter with two on and one out. He faced reliever Will Harris in an eight-pitch battle before launching a 3-2 offering out to left.
The Mets won for the fifth time in six games, benefiting from an Arizona error to score four unearned runs in the first inning.
New York starter Jonathon Niese (4-6) survived six innings to get the win, giving up four runs on seven hits. It was his first appearance since suffering a partial tear of his left rotator cuff in early June.
Zeke Spruill (0-2) took the loss, giving up five runs on six hits in only three innings.
In addition to losing the game, Arizona saw left fielder Cody Ross leave the field on a stretcher after dislocating his right hip. He suffered the injury when he fell to the ground trying to beat out a ground ball.
Exploding whale video goes viral on Internet
Reindeer recovered after escaping from Santa during lighting ceremony