"I can't say enough about the job Kevin Millwood has done since he's been here," said Rockies manager Jim Tracy. "He's been great with the lead and sets up our bullpen as well."
Colorado snapped a six-game losing streak in Milwaukee and dealt the Brewers a rare home loss. Milwaukee holds the majors' best home record at 52-23.
Shaun Marcum (12-7) allowed all six runs -- five earned -- in five innings to suffer the loss for the NL Central-leading Brewers. Because of St. Louis' win over Pittsburgh earlier Wednesday, Milwaukee's division lead is down to 5 1/2 games. Its magic number still stands at eight.
"This is no time to panic," said Brewers outfielder Nyjer Morgan. "We just have to battle adversity. This is just a part of the game."
The Brewers got the game's first run thanks to Corey Hart, who tripled down the left field line in the first inning. Nyjer Morgan's grounder to short plated the run, but Colorado took control in the third.
With Dexter Fowler on second and two away, Ellis singled up the middle to plate the run. Gonzalez came up next, and Marcum dealt him a first-pitch fastball low and in, but still over the plate. Gonzalez was all over it, slugging the ball deep into the second deck of seats beyond the right-center field wall.
Gonzalez saved a run in the bottom half, when Morgan slugged a ball to deep right field with a runner on first and two outs. But Gonzalez tracked the ball, leaping backward to make the catch in front of the wall.
Marcum gave up another first-pitch homer in the next inning. He left a fastball up to Wilin Rosario, who hit it over the left field wall.
Singles by Fowler and Ellis in the fifth keyed another Rockies rally. Gonzalez followed with a sacrifice fly, and Jason Giambi doubled. Hart's throwing error allowed Ellis to score, making it a 6-1 game.
Morgan scored on a wild pitch in the sixth, but the Brewers never caught up.
They had a chance to cut into their deficit in the eighth, with runners on the corners, one away and Prince Fielder coming to the plate. But Rex Brothers struck him out, then got Jerry Hairston Jr. to hit a grounder to second.
Rafael Betancourt pitched a scoreless ninth to secure the win.
Marcum has allowed 11 runs in his last two starts...Rockies shortstop Thomas Field singled in the third inning for his first career hit...Colorado catcher Eliezer Alfonzo was suspended 100 games by Major League Baseball after a second positive test for performance-enhancing drugs. Alfonzo, who also tested positive in 2008, said he was surprised by the test and plans to fight the suspension. He was batting .267 in 25 games for the Rockies this season...The Rockies return to Denver for a seven-game homestand starting Thursday against San Francisco. The homestand is their final one of the season...The Brewers head out for their final road trip of the regular season, a six-game trek to Cincinnati and Chicago that starts Friday against the Reds.