Gallardo (3-4) held the Diamondbacks to one run and five hits through 7 1/3 innings to improve to 6-0 in six career starts against Arizona. That doesn't count a victory over the Diamondbacks and Ian Kennedy in last year's divisional playoffs.
"He just pounds the strike zone," the Diamondbacks' Justin Upton said. "If you don't get him early, he's got power stuff that puts you away. He is a four-pitch pitcher and commands them all and pounds the zone."
All four of the pitches were working Friday.
"Everything was working," Gallardo said. "Timing, rhythm, release point. I know it gets kind of boring, but that's big for me."
Kennedy (3-5) was the loser Friday night, too. The Arizona right-hander, a 21-game winner last season, allowed four runs and seven hits in 5 2/3 innings in his fifth straight loss. Kennedy has lost more games than he did all last season.
"It is a bad, bad run," he said. "I have mixed some good ones in there and mixed some bad ones. I am trying to figure out what it is every single time. I have been working hard in between starts. Whether it is mechanical or other things I have to keep the same approach and throw every pitch with conviction."
Brewers manager Ron Roenicke said it's Kennedy's location.
"Today is just one game," Roenicke said, "but he didn't have the same command he had against us last year."
Even with the victory, the Brewers endured more bad injury news. Shortstop Cesar Izturis was placed on the 15-day disabled list after the game with a pulled left hamstring. Izturis was hurt legging out a double in the sixth inning. He left for a pinch-runner when the injury further tightened when he rounded third.
The Brewers recalled Edwin Maysonette from Triple-A Nashville just two days after he was optioned to the minors when Milwaukee claimed infielder Cody Ransom off waivers from Arizona.
Izturis said he had no idea how long he might be sidelined.
"A hamstring, it's hard to tell," he said. "Right now it's really sore."
The Brewers already have lost shortstop Alex Gonzalez for the season with a torn ACL.
The Diamondbacks lost at home for the 10th time in 12 games and 15th in their past 19.
Jason Kubel homered on his 30th birthday for Arizona.
Kennedy retired the first five batters before Weeks, entering the game hitting .155, hit a 2-1 pitch into the seats in left-center field, his fifth homer of the season.
The Brewers added three runs in the fourth. Nyjer Morgan led off with a single, then Braun's opposite-field shot to right field -- his 13th homer -- put Milwaukee up 3-0. Aramis Ramirez followed with a single. After two outs, Travis Ishikawa was hit by a pitch, then Izturis' RBI single to center made it 4-0.
Gallardo didn't allow a hit until Kennedy's single off the glove of second baseman Weeks with one out in the third. The runner was erased by the Brewers' second double play of the game.
Kubel's home run onto the porch in right-center cut the lead to 4-1 in the fourth. The Brewers tacked on two runs in the seventh when Hart homered off Josh Collmenter.
It could easily have been even more one-sided. Milwaukee left the bases loaded without scoring in the fifth and sixth.
Arizona loaded the bases with one out in the eighth but Ryan Roberts bounced into the Diamondbacks' fourth double play.
Kennedy struck out seven, walked two, one intentionally, and hit two batters. Gallardo struck out five and walked three.
Before the game, a person with knowledge of the situation said the Diamondbacks had agreed to a five-year, $60 million contract with catcher Miguel Montero. Montero sat out his third straight game with a mild groin strain.
Kennedy has allowed seven home runs in his past four starts and has a 6.00 ERA in his five-game losing streak. ... Arizona manager Kirk Gibson confirmed that RHP Daniel Hudson will return from the DL to start Sunday's series finale. Hudson has been sidelined since April 21 with a right shoulder impingement. ... After three games in Arizona, the Brewers play a four-game series against the NL West-leading Dodgers in Los Angeles. ... In a strong pitching matchup Saturday night, the Diamondbacks send rookie LHP Wade Miley (5-1, 2.14) against Milwaukee RHP Zack Greinke (5-1, 2.70). ... Bloomquist went 0-for-3 to end an eight-game hitting streak.