Chris Heston took a no-hitter into the sixth inning Tuesday and the Giants hit three home runs on their way to a 9-3 victory over the Padres at Petco Park.