SCOTTSDALE, Ariz. -- Tim Hudson faced eight batters in a shaky but scoreless outing, Casey McGehee drove in a run and the San Francisco Giants beat the Arizona Diamondbacks 5-0 on Sunday.