Jake Peavy took a no-hitter into the eighth inning and finished with a one-hitter over 7 2/3 innings and the Giants beat the Brewers 3-1 on Saturday night in San Francisco, according to an ESPN.com report.