Tim Hudson allowed three hits while working into the eighth inning in his first start for the Giants, and San Francisco beat the Arizona Diamondbacks 2-0 on Wednesday night.