NEW YORK -- Victor Zambrano kept Arizona off the bases, and Jose Reyes ran wild on them.
Zambrano took a shutout into the ninth inning, and Reyes' speed sent the New York Mets to a 2-1 victory Wednesday night over the Diamondbacks.
Mike Piazza had an RBI double and Carlos Beltran drove in the first run with a groundout, helping the Mets (27-26) bounce back from consecutive defeats. Reyes rapped three hits, stole three bases and manufactured a run with his legs.
"He creates a lot of havoc," teammate Cliff Floyd said. "The more we can distract the pitcher, the better it is for us as hitters."
Brandon Webb (6-2) took the loss despite allowing just one run in seven innings. He has lost two outings in a row following a 6-0 start.
"From the first inning on, I knew I had to keep it close. I was outpitched," Webb said. "I don't even remember a hard-hit ball. There's not much else I can do."
Zambrano (3-5) gave up five hits and struck out five in perhaps his best outing since joining the Mets last July.
Acquired from Tampa Bay in a heavily criticized trade that cost New York top pitching prospect Scott Kazmir, Zambrano did not last longer than six innings in any of his first nine starts this year.
"He really baffles the hitters, in my mind. You don't see too many good swings against him," Floyd said.
After walking 34 in his first 49 1/3 innings, Zambrano worked around three free passes Wednesday night.
"I'm working every day to get strong," he said. "From spring training to right now, I want to prove to myself what I can do."
The right-hander was lifted after Troy Glaus' leadoff single in the ninth and strolled off the mound to a standing ovation from the crowd of 33,436.
"I just hope he can continue to grow off this," Mets manager Willie Randolph said.
Braden Looper allowed an RBI single to Shawn Green but induced Chad Tracy to ground into a double play. After singles by pinch-hitters Tony Clark and Alex Cintron, Looper struck out pinch-hitter Matt Kata with two on for his 11th consecutive save and his 12th in 14 chances.
"It was typical Mets baseball," Floyd said. "We have to do it that way because it's fun."
Reyes led off the first inning by faking a bunt and slapping a grounder past a drawn-in Glaus at third base. Royce Clayton fielded the ball deep in the hole at shortstop but had no play.
"With a guy like that, you have to play in," Arizona manager Bob Melvin said. "We've got to try to keep him off base."
Reyes stole second before Miguel Cairo hit a grounder wide of third. Reyes waited for Glaus to throw across the infield, then dashed to third with a headfirst dive.
Beltran's grounder to shortstop easily scored Reyes, who later stole second on a pitchout.
"We tried everything and he still got in there," Webb said.
The score stayed 1-0 until Floyd opened the eighth with a double off Lance Cormier and scored on Piazza's bloop double down the right-field line.
"The big run was the second one we gave up," Melvin said.
Arizona CF Jose Cruz Jr. made a diving catch to rob Floyd of a hit in the first. ... Reyes has 14 steals. He also swiped three bases last Oct. 3 against Montreal. ... Indy 500 winner Dan Wheldon threw out the first pitch. ... Cairo left in the seventh with tightness in his left hamstring. He is day to day. ... Mets RF Mike Cameron leaped at the fence to catch Luis Gonzalez's drive in the third.