PHOENIX -- Zack Wheeler's rookie season is passing faster than he imagined possible.
Wheeler gave up six hits in six-plus strong innings and Wilmer Flores drove in three runs to lead the New York Mets past the Arizona Diamondbacks 4-1 on Saturday night.
Wheeler (5-2) allowed one run, struck out four and did not walk a batter for the first time in 10 career starts.
"It's already 10 starts? It definitely is going fast," Wheeler said. "I'm definitely enjoying it, trying to learn something new every day and holding my own up here."
Wheeler threw 68 of his 106 pitches for strikes, his highest strike total in a game and his third best ball-strike ratio in his nascent career.
"He had pretty good stuff in the strike zone," Mets manager Terry Collins said. "This is an example of what he's got. When he needs something, he can throw 96 or 97 (mph)."
Juan Lagares homered for the Mets, who won for the fourth time in five games.
Veteran right-hander LaTroy Hawkins pitched the ninth and struck out two for his third save in five games.
Brandon McCarthy (2-6) gave up two runs, six hits and a walk with four strikeouts in seven innings for the Diamondbacks, who fell 6 1/2 games behind the streaking Los Angeles Dodgers in the National League West.
"There are a few pitches I would like to have back, but overall I felt that I did a good job of commanding the ball and moving them around," McCarthy said.
With the Mets ahead 2-0, Arizona's Aaron Hill led off the sixth with his sixth home run to cut the lead in half.
But New York responded in the eighth. Eric Young Jr. walked to lead off the inning and Lagares singled against David Hernandez. Hernandez recorded two quick outs, but Flores singled to left, scoring both runners to make it 4-1.
Hernandez was optioned to Triple-A Reno after the game, his first trip the minor leagues since 2010 while in the Baltimore Orioles' farm system.
"He has struggled," Arizona manager Kirk Gibson said. "We're going to get him down there in a different environment. He got out there today and the game has been cruel to him."
Arizona loaded the bases with two outs in the bottom of the eighth against Carlos Torres, but Pedro Feliciano came on to strike out Gerardo Parra looking and escape the jam.
Feliciano had his minor-league contract purchased by the Mets in August after missing more than two seasons with myriad injuries and illnesses.
"A guy with his background and experience, he did a lot of things a lot of guys would not do," Collins said. "He stood his ground because he knew he was going to get back."
After a scoreless first three innings, the Mets broke through in the fourth off McCarthy.
Lagares led off the inning with a homer to right, his third of the season and first since July 21 at Philadelphia. McCarthy retired the next two hitters before Ike Davis doubled to center and scored on a single to right by Flores.
Flores has an RBI in four straight games and six RBIs in his first five major league games, the second most in Mets history during a similar span.
NOTES: Hernandez has allowed 16 earned runs, including four home runs, in 13 1/3 innings in his last 15 appearances. ... Flores also was thrown out trying to take third on a single in the fourth inning, making him the third Mets player in the past two games who ran into an out on the bases. ... Parra was back in the starting lineup after a couple of days off, save a pinch-single on Tuesday. ... Collins said it's possible that 3B David Wright, out since Aug. 3 with a strained right hamstring, might not return this season. ... Arizona RHP Trevor Cahill, out since July 1 with a right hip contusion, will make a rehab start on Sunday against Memphis for Triple-A Reno.