Peralta gave up four runs and eight hits in six innings. He struck out seven and walked two in his second win over Friedrich and the Rockies in six days.
Friedrich (0-2) yielded five runs and nine hits over four innings. He struck out eight and walked one in his second start of the season.
"I was getting behind batters and not really executing down in the zone," Friedrich said. "You just have to execute, especially when you're ahead."
Friedrich temporarily settled down after the rough first inning, striking out four consecutive batters during one stretch — including all three in the second. But he ran into trouble again in the fifth, when the Brewers regained the lead.
"It's a tough recipe when your starter is out of the game before the sixth," Weiss said.
The Rockies threatened in the seventh, loading the bases with two outs. Will Smith struck out Corey Dickerson to preserve Milwaukee's lead.
In the Colorado eighth, Michael McKenry led off with a double against Brandon Kintzler. After consecutive groundouts, pinch-hitter Brandon Barnes struck out looking, stranding McKenry at third.
"Certainly nothing has come easy lately," Weiss said. "We had some opportunities late."
Four Brewers relievers combined for three shutout innings.
NOTES: Weeks hit his 26th career leadoff homer. ... Wheeler's grand slam was the first of his career and just his third home run in three seasons of limited action with the Rockies. ... Colorado catcher Wilin Rosario left with lower back tightness. ... Rockies reliever Boone Logan (left elbow inflammation) made a rehab appearance for Triple-A Colorado Springs. ... Milwaukee's Kyle Lohse (9-2) will face Tyler Matzek (1-2) on Friday in the second of a four-game series.