Narveson maintained a perfect game for 4 2/3 innings until Peguero singled solidly to left field. That was the only baserunner allowed by Narveson, who entered the game with a 5.40 ERA. The left-hander struck out four while throwing only 62 pitches, including 43 strikes.
"When you get in those pitchers' duels, the pace just seems to flow," Narveson said. "We had that today, going back and forth. I think that helps you stay in a rhythm."
After Peguero's hit, Brewers shortstop Donnie Murphy went to Narveson and said, "Man, that was a good pitch." It was a low changeup.
"I didn't know how to pitch to him or anything; I was just trying to stay at the bottom of the zone," Narveson said. "He looks like a pretty good hitter, so I'm guessing he's one of their prospects."
Vogelsong, making his initial appearance for the Giants since ending his World Baseball Classic stint with Team USA, became San Francisco's first pitcher to last six innings this spring. The right-hander surrendered three hits while issuing one walk and striking out seven.
"I wasn't trying to reinvent the wheel," said Vogelsong, who threw 60 strikes in 82 pitches and went to only one three-ball count. "I was just trying to throw quality strikes and pound the zone."
Vogelsong, who sustained a perfect game for 3 2/3 innings before Martin Maldonado beat out an infield single, encountered trouble in the fifth. Caleb Gindl doubled with one out, and Sean Halton drew a two-out walk. Vogelsong responded by striking out Narveson.
The Giants threatened Milwaukee reliever John Axford in the seventh, which began with Marco Scutaro's single. Pinch-runner Kensuke Tanaka stole second base and went to third on Joaquin Arias' groundout. Axford ended the threat by coaxing Buster Posey's groundout with the infield playing shallow and inducing Brandon Belt's fly to right.
Giants closer Sergio Romo escaped a two-on, one-out jam in the ninth as Khris Davis struck out and Gindl flied out.
Up next for the Brewers: Catcher Jonathan Lucroy will continue making up for lost time when he starts Thursday's game against the White Sox in Glendale, Ariz., at 3:05 p.m. CT. Both Brewers catchers were limited to backup duty in the World Baseball Classic -- Lucroy for the U.S., and Martin Maldonado for Puerto Rico -- so Brewers manager Ron Roenicke intends to play both extensively in the remaining week-plus of Spring Training. Lucroy is expected to be the Brewers' Opening Day catcher. Right-hander Mike Fiers will get the start against Chicago's Chris Sale in a game available free and exclusively via a brewers.com webcast.