Angels left-hander Jason Vargas was charged with five earned runs on eight hits in 5 1/3 innings. He walked a batter and struck out four.
"I felt all right," Vargas said. "Left some pitches up early and they took advantage of them, but after the third inning, I felt pretty good."
Albert Pujols played five quiet innings at first base -- his first appearance in the field this spring -- and went 0-for-2 at the plate. He was hit by a Peralta pitch in the first inning that deflected into plate umpire Seth Buckminster, who exited with a hand or arm injury. While Anthony Johnson changed into Buckminster's gear, the game proceeded with veteran Tim McClelland calling balls and strikes from a position behind the pitcher's mound.
"I felt good, just like I was expecting to be," Pujols said. "I didn't get any plays, but it was good to get out there and get my feet wet, moving around. No problem at all."
Rickie Weeks hit a two-run home run in the first inning and Ramirez added a two-run single in the third inning and solo shot in the fifth to back Peralta, who delivered his best start of the spring. The right-hander worked six innings, allowing one run on six hits with no walks and two strikeouts.
"So far, that's been my best one," said Peralta, who will open the season as Milwaukee's No. 3 starter. "[The Angels] had everyone in there today, so it felt good. My command was good."
Facing a lineup that included Trout, Pujols and Josh Hamilton, Peralta had help from center fielder Logan Schafer, who made a sensational leaping catch to rob Pujols of extra bases to end the third inning, and catcher Jonathan Lucroy, who threw out two would-be base stealers in the fourth.
Sean Halton homered for the Brewers in the seventh to cap the scoring.
Up next for the Angels: Tommy Hanson will get his fourth start on Wednesday, when the Angels host the Indians at Tempe Diablo Stadium at 1:05 p.m. PT. Hanson gave up three runs in four innings his last time out and has allowed nine runs in nine Cactus League frames so far. "I still feel like I've got some work to do," he said. "I'm not getting impatient [for the season to start]. I'm going in the right direction, so I'll try and use these last couple of weeks to my advantage." Trevor Bauer will start for Cleveland.
Adam McCalvy is a reporter for MLB.com. Read his blog, Brew Beat, and follow him on Twitter at @AdamMcCalvy. This story was not subject to the approval of Major League Baseball or its clubs.