Updated

The numbers are starting to look ugly for the San Diego Padres.

Justin Upton hit a two-run homer and Daniel Hudson won his third straight start as the Arizona Diamondbacks beat the listless Padres 6-0 on Saturday night.

The Padres said before the season that they were a more complete team even though All-Star slugger Adrian Gonzalez was traded to Boston because management knew it wouldn't be able to keep him once he hit the free-agent market.

So far, they're not.

The Padres have been shut out a major league-high eight times in 33 games. They dropped to 6-14 at home, worst in the majors.

Asked if any changes were coming, manager Bud Black said: "I think you have to continue to watch each and every day for certain signs. We need the group to all rise. It's happening at a slower pace than we need to score runs."

Hudson (3-4) held San Diego to five hits in seven innings while striking out six and walking none. Only one Padres baserunner made it to third base against the right-hander.

Ryan Roberts had three singles and scored three runs for Arizona. Stephen Drew had an RBI and a run scored before leaving with tightness in his right groin.

Arizona won for just the second time in 12 games at Petco Park dating to 2009.

Upton gave the Diamondbacks a 6-0 lead when he homered to left-center on a 2-2 pitch from Dustin Moseley with one out in the fourth, his seventh. Roberts was aboard on a single to right.

After Upton's homer, the Padres retired the final 17 Diamondbacks batters.

Moseley (1-4) saw his ERA rise from 1.63, second-lowest in the majors, to 2.47. He allowed a season-high six runs, five earned, in five innings, one less than he'd given up in his previous six starts combined. He allowed seven hits, struck out three and walked three.

The Padres have given Moseley the lowest run support in the majors, an average of 1.03 runs per game.

"We have been swinging the bats better," third baseman Chase Headley said. "I thought Hudson did a good job. I thought we hit some balls really good that were outs. I'm not saying that was the difference in the game. But the difference in getting blanked versus the difference in getting a couple of runs."

Roberts also scored in the first and third.

He singled to center with one out in the first, advanced on Upton's groundout and scored when second baseman Eric Patterson overthrew Moseley covering first on Drew's grounder for an error.

The Diamondbacks batted around in the third, scoring three runs on three singles and three walks, two intentional. Drew and Melvin Mora had RBI singles and Juan Miranda brought in a run with a groundout.

NOTES: Black received his NL Manager of the Year trophy in a pregame ceremony and was honored with a bobblehead giveaway. ... With St. Louis losing 4-0 to Milwaukee, Arizona is the only team in the NL, and one of only three teams in the majors, that hasn't been shut out this year. ... Drew was replaced in the field by Josh Wilson.