NEW YORK -- On a humid and sticky night at sold-out Citi Field, it was Randall Delgado who stayed strong late while Matt Harvey wilted.
Delgado outpitched Harvey for his first major league win in more than a year, and the Arizona Diamondbacks snapped a five-game skid with a 5-3 victory over the New York Mets after a long rain delay Wednesday.
"We beat a very good pitcher," Diamondbacks manager Kirk Gibson said. "We stayed with it and we had some very good at-bats."
Mets nemesis Cody Ross hit a three-run homer off Harvey to put Arizona ahead. Delgado struck out a career-high nine and walked none in seven innings to give the NL West leaders their first victory by a starting pitcher since Wade Miley beat St. Louis on June 5.
Diamondbacks starters went 0-11 over the next 24 games until Delgado (1-2) held New York in check for his first win since June 6, 2012, with Atlanta at Miami.
"I think this is a special team and when you have a special team you put up really nice and weird streaks," reliever Heath Bell said. "I mean, we were in first place before that streak and we're in first place after that streak, so it's one of those weird streaks. But yeah, it was really nice to get a win for one of the starters."
Delgado was 0-6 in his previous nine starts dating to last season. The 23-year-old right-hander from Panama, obtained in the January trade that sent slugger Justin Upton to the Braves, had received only six runs of support during that stretch, including two in three starts for Arizona -- none in his past two outings.
"The team played awesome today," Delgado said. "It feels good."
Josh Satin hit his first career homer and David Wright also went deep in front of a rare packed house at Citi Field. Daniel Murphy homered in the eighth off David Hernandez, then Bell got three outs against his former team for his 15th save.
The Diamondbacks ended their longest slide of the season and won for the second time in 10 games, improving to 2-7 on a 10-game road trip against NL East teams.
Harvey (7-2) is a strong candidate to start the All-Star game on his home mound July 16. Hoping to boost his bid, he pitched through traffic early and took a shutout into the sixth. But he faded late and ended up charged with nine hits and a season-high five runs in six-plus innings.
The 24-year-old righty struck out nine and walked three, matching his most free passes this year. The five runs allowed tied his career high set Aug. 5 last year in San Diego.
"The All-Star game's not on my mind. I have one thing to do and that's to put up zeros, and I didn't do that," said Harvey, who acknowledged he didn't refocus properly after the rain delay. "Pretty much all night I wasn't making good pitches and wasn't hitting my spots too well. The ball was up a little bit and they took full advantage of that."
Diamondbacks slugger Paul Goldschmidt was rested, so teammate Cliff Pennington and Gibson needled the big first baseman that he must be under the weather with "Harveyitis."
But on this night, it was Delgado who had staying power. Eric Chavez started in Goldschmidt's place and batted third, chasing Harvey with an RBI double off the left-field wall in the seventh.
"To beat one of the best obviously feels good," Ross said. "Tonight we had a really good approach as a team."
A sellout crowd of 41,257 on Fireworks Night -- the largest at Citi Field all season -- waited out a rain delay of 1 hour, 51 minutes, and filled up the seats enough to do a respectable Wave.
Harvey was slow to find a rhythm, though not his 98 mph fastball. Two singles and a walk loaded the bases in the first before Martin Prado grounded sharply into an inning-ending double play.
Prado then failed to make a barehanded pickup of Eric Young Jr.'s slow roller that went for an infield single leading off the bottom half. The third baseman accidentally booted the ball toward the foul line, then finally stomped it twice into the turf in frustration.
Harvey quickly turned it on, striking out his next four batters, and had a 2-0 lead in the sixth when Arizona got to him. Miguel Montero walked on 10 pitches, Prado singled and Ross lofted a two-out drive into the left-field corner for his fifth home run.
"It was a ton of energy when I came into the dugout, and sort of a shot in the arm that maybe we needed," Ross said.
Suddenly trailing 3-2, Harvey yanked his cap off his head and wiped sweat off his face.
"That was the change, pretty much. After that, I don't think he was the same. It was humid, he had 100 pitches already," Montero said. "Lately we've been seeing a lot of 96, 97 mph pitchers. When we see a guy throwing 88, we don't feel as comfortable apparently. ... We just grinded every at-bat."
Harvey walked Tony Campana to start the seventh and Aaron Hill blooped a single before Chavez's double made it 4-2. Montero added a sacrifice fly off Scott Rice.
"Pretty much put it on a tee for him," Harvey said of the hanging slider to Ross. "Obviously, it's a pitch I wish I could have back, but it's over and done with."
NOTES: Diamondbacks OF Gerardo Parra was out of the lineup for the second consecutive night after he was shaken up trying to make a diving catch on the warning track Monday, leaving him with scrapes and bruises on his face and arm. Gibson said he thought Parra would probably be available off the bench. ... Campana, called up from Triple-A Reno before the game, threw out Murphy at second on a leadoff single in the fourth off the left-centre fence -- just before Wright homered. ... Goldschmidt flied out as a pinch-hitter in the eighth. ... Mets manager Terry Collins said RHP Shaun Marcum (1-9) will make his scheduled start Saturday night in Milwaukee after an MRI came back clean.