Kelly Johnson and Miguel Montero homered in a five-run sixth inning, and Arizona stopped a seven-game losing streak with a 9-6 victory over New York on Friday night.
Montero also doubled, singled and drove in four runs for the Diamondbacks, who won for the first time since finishing a three-game sweep of the struggling Mets last Wednesday in Arizona.
"For some reason, these guys play extremely well against us," New York slugger David Wright said.
The Mets wasted Wright's two long homers and five RBIs, done in by a dreadful relief outing from left-hander Raul Valdes (2-3) after another shaky start by Mike Pelfrey. Valdes gave up hits to all four batters he faced, turning a one-run lead into a 9-5 deficit in 14 pitches.
Arizona's outburst was aided by Jose Reyes' error at shortstop and it made a winner of Ian Kennedy (6-8), who went six innings and allowed only three hits. Two of them were no-doubt homers by Wright - a three-run shot that tied it in the first and a two-run drive that put New York up 5-4 in the third.
"I'm just really thankful for the offense. They bailed me out here," Kennedy said.
Chad Qualls struck out two in a perfect eighth, and ex-Met Aaron Heilman got three outs for his fourth save, sealing New York's 14th loss in 19 games.
Earlier in the day, the rebuilding Diamondbacks unloaded an All-Star pitcher for the second time in a week when they shipped starter Edwin Jackson to the Chicago White Sox for rookie Daniel Hudson and prospect David Holmberg.
Arizona sent Dan Haren to the Los Angeles Angels for left-hander Joe Saunders and three other players Sunday, but Kennedy provided a lift against the Mets.
"When I first came in here, we kind of trimmed Ian Kennedy's innings back a little and I think that it's helped him," interim manager Kirk Gibson said. "He does seem a little stronger."
Two fans carrying Mexican flags ran into the outfield during the seventh inning but were apprehended by security fairly quickly without much incident.
Before the game, a group of about 40 demonstrators across the street from Citi Field protested Arizona's immigration law, chanting and handing out leaflets that requested Major League Baseball move next year's All-Star game from Phoenix.
Pelfrey threw 51 pitches in the first inning July 19 at Arizona and was chased after getting only four outs, the shortest start of his career. He yielded six runs and seven hits in a 13-2 loss.
The big right-hander, 0-3 in six starts since beating Minnesota on June 25, recovered from a rough first inning in this one and left with a chance to win after 118 pitches. Still, he's 0-5 in seven career starts against Arizona.
"Everybody else in the rotation has been throwing the ball great and I've kind of taken a step back from early in the year," Pelfrey said. "I definitely plan on getting this thing turned around and back on track so we can start winning some games."
Pelfrey retired seven straight batters before Kennedy reached on Reyes' one-out error in the sixth.
"I have to make that play. Routine groundball. I always make that play," Reyes said.
One out later, Valdes entered to face the left-handed hitting Johnson, who drove a 1-1 pitch to center for his 17th home run and a 6-5 Diamondbacks lead.
Justin Upton and Adam LaRoche singled before Montero pulled the next pitch off the facing of the second deck in right field.
Mets manager Jerry Manuel then pulled Valdes, and both were booed as they came off the field.
"Everything was up, and everything the last few weeks was down," Valdes said through a translator. "It just happened today I was up and I paid the price."
Reyes, who had three hits, doubled in the seventh and scored on Angel Pagan's two-out single off Blaine Boyer.
LaRoche, Montero and Mark Reynolds hit consecutive RBI singles in the first inning, the last two deflecting off the glove of a diving Wright at third base.
Montero hit a leadoff double in the third and scored on Stephen Drew's double.
"I'm swinging at better pitches I think," Montero said. "I got pretty good pitches to hit in a couple of spots tonight and I got really good swings on them."
Hudson is slated to start the series finale Sunday. ... The Mets placed LF Jason Bay (concussion) on the 15-day disabled list and recalled OF Jesus Feliciano from Triple-A Buffalo.