"They made a critical mistake and didn't execute on the ball in the dirt," Diamondbacks manager A.J. Hinch said.
Mark Reynolds and Miguel Montero homered for Arizona, which has won four of its last six games. Doug Davis, thought to be an option for some contenders before Friday's non-waiver trade deadline, pitched six effective innings.
"It's something that's out of my control so I really try not to bring that out there on the field but I'm happy I'm still with the Diamondbacks," Davis said.
The Mets looked as if they might escape after Daniel Murphy turned a nifty 3-2-3 double play but Green's next pitch bounced away from catcher Omir Santos and Upton scampered home to give the Diamondbacks a 3-2 lead.
"I pretty much put myself in position to get out of it and I threw it in the dirt," Green said.
Esmerling Vasquez (2-2) pitched a scoreless seventh, Jon Rauch worked the eighth and Chad Qualls finished for his 19th save. Third baseman Reynolds dropped Cory Sullivan's popup with one out in the ninth but Angel Pagan grounded into a double play to end the game.
"Those are two veteran pitchers dueling each other," Mets manager Jerry Manuel said. "If you are a little bit anxious I think they'll take advantage of you. It was a well-pitched game by both guys."
Hinch admired Citi Field's spacious outfield before his club's first visit to New York's sparkling new home, but the Diamondbacks didn't seem fazed by the dimensions once the game started after a 54-minute rain delay.
Reynolds hit a 415-foot drive to center in the second for his 29th homer and Montero connected in the fourth, reaching the upper deck in right for his 10th of the season. Reynolds had two hits and is batting .396 (21 for 53) since the All-Star break.
"In Arizona, I know that ball is gone," Reynolds said of his homer. "Here, I didn't know but I think it went in the first row and I'll take it."
Murphy and Wright supplied the offense for New York. Murphy hit an 0-2 pitch from Davis off the right-field foul pole in the second and Wright tied it at 2 with a leadoff drive into the left-field seats in the sixth.
It was Wright's seventh homer and second in the past week. He also had a solo shot in New York's 10-3 win at Houston last Saturday. He is hitting .412 (14 for 34) during a 10-game hitting streak.
The Mets had the bases loaded with two out in the sixth but pinch-hitter Angel Berroa grounded into a fielder's choice on Davis' first pitch.
Davis walked six but limited New York to two runs and four hits.
"We never put a lot of guys on base," Mets right fielder Jeff Francoeur said. "We never had the chance for a big inning. Doug Davis, he has us all off balance."
Manuel said he probably will wait until after Saturday's game to make a decision on who will start Monday against the Diamondbacks. ... Mets C Brian Schneider (left knee) was available but Santos got the start behind the plate. Santos also caught both games in Thursday's day-night doubleheader split against Colorado. ... Arizona LHP Scott Schoeneweis visited some of his former teammates in the Mets' clubhouse before the game. Schoeneweis was acquired from New York in December.