In danger of a no-hitter until the sixth inning, the Giants came back from a 4-0 deficit to beat the Rockies 5-4.