MILWAUKEE -- Doug Davis knew when he made bad pitches -- and Mike Piazza knew what to do with them.
"None of those had a chance," Davis said of the long homers. "I went straight to the umpire and asked for a new ball. That's all you can do."
Piazza went 2-for-4, a day after getting four hits in a win over Philadelphia. In two games following a 1-for-21 slump, he has raised his average from .198 to .242.
He hit an 0-1 pitch from Davis (3-4) into the second tier of the left-field seats in the second inning, a drive estimated at 434 feet. After Carlos Beltran's run-scoring double in the third, Piazza hit Davis' first pitch 402 feet to the same tier of seats in left.
"You know right when you release it, that it's a bad pitch," Davis said. "You just hope he would foul it off or something rather than hit it a country mile."
It was Piazza's fifth home run of the season, giving him 35 career multihomer games. His last one had been last June 5 against Florida.
"This game is momentum," he said. "I just want to keep doing what I'm doing as far as swinging the bat. I can't really say that I've been patient, because I've been aggressive."
Mike Cameron added a two-run shot in his second game back from the disabled list, and David Wright hit a solo home run for the Mets, who won for the fifth time in six games.
The Brewers scored a run off reliever Heath Bell and had men on first and second with one out in the ninth. With normal closer Braden Looper having pitched the last two days, Roberto Hernandez came in for one out before Dae-Sung Koo walked a batter to load the bases. Looper finally came in and got Carlos Lee to fly to left for his seventh save in nine chances.
"That was exciting right to the end," Milwaukee manager Ned Yost said. "You can't hit a ball almost any harder than Carlos did right there, but it was right at him."
Mets manager Willie Randolph said he didn't think long about not bringing in Looper.
"If you get a chance to win the game, you go for it," Randolph said.
Cameron, who was 2-for-4 with two doubles and two runs scored in his season debut Thursday, made it 6-1 with his first homer, a two-run shot to deep center with two outs in the fourth.
Wright connected off reliever Matt Wise in the eighth for his fifth homer.
Cliff Floyd went 0-for-4, snapping his career-high 20-game hitting streak, the longest in the majors this season.
Victor Zambrano (2-3) won for the first time since beating Philadelphia on April 19. The only batter he had trouble with was Lee, who had a run-scoring double in the first and a solo homer leading off the sixth.
Zambrano retired the next two batters after Lee's homer, but Russell Branyan doubled and scored on J.J. Hardy's single that chased Zambrano. Bell took over and struck out pinch-hitter Jeff Cirillo to end the threat.
Zambrano allowed six hits, struck out four and walked four in 5 2/3 innings. He also had two singles for the first two-hit game of his career.
Davis was coming off a five-hitter against Cincinnati, his first complete game since August 2003, but wasn't nearly as sharp against the Mets.
He struggled through six innings, giving up six runs and seven hits. He has lost four of his last five starts.
The Brewers scored first on Lee's two-out double in the first.
Milwaukee's Lyle Overbay went 0-for-3 and had his 12-game hitting streak snapped.
Piazza's second homer was his 383rd, giving him sole possession of 48th place on the career list. His solo shot in the second briefly moved him into a tie for 49th with Frank Howard and Jim Rice. Harold Baines is in the 47th spot with 384. ... Cameron's homer in the fourth was the 1,000th hit of his career. ... Brewers RHP Ben Sheets took a small step forward in his return from the disabled list with an inner ear infection. He threw off the bullpen mound for approximately 15 minutes before the game. ... Davis went 0-for-2, dropping to 4-for-104 in his career.