J.J. Hardy, who had been in a 1-for-23 slump, singled to start the eighth against reliever Juan Gutierrez. Fielder walked with one out, and Gutierrez (1-2) was yanked for Tony Pena. Cameron hit a flare that Upton misread in right field and the ball bounced in front of him for a single that loaded the bases.
Duffy, who came in as a defensive replacement in the seventh, grounded out hard to second baseman Felipe Lopez, who needed to dive and could only make a play at first as Hardy scored.
Mitch Stetter (1-0) pitched a perfect eighth and Hoffman earned his third save this season with a clean ninth.
Arizona rallied in the seventh against Bush, who had allowed three baserunners over his first six innings. The Diamondbacks, hitting a major league-low .232 entering Sunday's game, tied it on back-to-back homers by Reynolds and Upton, and Montero's two-out shot.
It was Upton's second homer in two games. The 21-year-old former No. 1 overall draft pick has hit in 10 straight games with four homers and 11 RBIs during that stretch.
The Brewers had gone three games without a homer, their longest drought since September 2005, before Fielder hit one leading off the second against Petit.
Cameron took Petit's next pitch over the wall in left field for his 1,500th career hit.
The Brewers made it 3-0 in the fifth on Hart's RBI single off Petit, who has replaced injured Diamondbacks ace Brandon Webb (shoulder) in the rotation and hasn't won yet in four starts.
But Milwaukee couldn't tack onto the lead with runners on the corners and no outs in the sixth after Arizona reliever Tom Gordon made an out at the plate and left with an injury to his left leg.
Gordon's pitch to Cameron went to the backstop, but he got the relay throw from Montero and made the tag, falling to the ground after Weeks slid into him. The out proved important as Arizona rallied in the seventh, but it wasn't enough.
Notes:@ Brewers LF Ryan Braun (back) missed his second straight game despite it being his bobblehead day, celebrating the two-run homer he hit on the final day last season to lift Milwaukee to its first postseason appearance in 26 years. ... Diamondbacks manager Bob Melvin said he's not concerned with Conor Jackson's slow start. Jackson, who went 0 for 4, came in hitting .213 with one homer and a team-high 13 RBIs.
Source: AP News