Eleven months ago, the Chicago White Sox sent Daniel Hudson and a minor league prospect to the Arizona Diamondbacks for Edwin Jackson.

It's becoming ever more obvious who got the better of the deal.

Hudson (8-5) threw a three-hitter in his first career complete game and the Diamondbacks beat Jackson and the White Sox 4-1 Friday night in the opener of their three-game interleague series. The 24-year-old right-hander earned his eighth win in nine decisions since starting the season 0-4.

"He was throwing 3-2 changeups to guys. That is confidence. That is maturity," White Sox manager Ozzie Guillen said. "We always liked him and when we traded him we knew he had a chance to be a good one. There was not any doubt in anyone's mind about that."

In his second major league season, Hudson improved to 15-6 since coming to Arizona.

Hudson, who threw a career-high 119 pitches, was adamant about going out in the ninth inning.

"Going against the team that drafted me and gave me my first chance in the big leagues was a lot of fun," he said. "To do what I did was cool."

His performance follows Ian Kennedy's standout eight innings in the Diamondbacks' 3-2, 10-inning win over San Francisco on Thursday night. With the Giants losing at Oakland, Arizona pulled back within a half-game of first-place San Francisco in the NL West.

"They've been really solid 1-2," Diamondbacks manager Kirk Gibson said. "I don't think probably that people around the country look at Kennedy and Hudson like a formidable 1-2, but we don't care about that. We see what they do for us day in and day out, what they mean to this team."

Hudson's RBI double with two outs in the seventh ended the night for Jackson (4-6), who gave up four runs on eight hits in 6 2-3 innings.

With Hudson pounding the ball down in the strike zone, shortstop Stephen Drew had 11 assists, 10 on groundballs and another on the game-ending double play on a bouncer to the pitcher.

"They kept hitting them to me," said Drew, whose previous assist high was eight. "It kept me in on the action. That was really fun, it really was."

Paul Konerko's leadoff homer in the seventh ended a string of 18 scoreless innings for Chicago, who have two runs total in their last three games. Hudson, who said it was a bad pitch, struck out the White Sox star twice.

Arizona's Justin Upton singled three times, his fifth straight multihit game. Upton, whose first career game-ending home run gave Arizona a 3-2 victory over San Francisco in 10 innings the Thursday night, singled in a run in the first inning, then scored from first on Miguel Montero's two-out double.

Upton has hit .591 (13 of 22) during that five-game span to raise his average to .299. He reached base for the fourth time when he walked in the eighth, then stole second.

Hudson retired 16 in a row after walking Carlos Quentin in the first inning. The streak ended when Drew had trouble getting the ball out of his glove after fielding Alexei Ramirez's grounder and his throw pulled first baseman Juan Miranda just off the bag.

"Today we did nothing, nothing exciting about it," Guillen said. "We got the home run and the last inning was OK but we are struggling and we have to come out of it as quick as we can."

Drew singled in the first, took second when Jackson was called for a balk, then scored when Upton's singled. Montero's RBI double to the right field gap made it 2-0.

After Konerko's 17th home run of the season cut the lead to 2-1, Arizona got two more in the seventh. Ryan Roberts singled with one out, then after Jackson fanned Gerardo Parra, Hudson doubled to deep right-center to bring in the run. Left-hander Chris Sale replaced Jackson and gave up an RBI double to Kelly Johnson to put the Diamondbacks ahead 4-1.

NOTES: Hudson is 8-3 with a 2.60 ERA in his career at Chase Field. ... The White Sox lost only their third interleague game in their last 16 and are 41-17 in them since 2008. ... The Diamondbacks are 4-0 in interleague contests this season. ... Upton has 33 hits since May 29. ... Jackson fanned the leadoff batter Johnson three times. ... Hudson averaged 105 pitches a game entering the contest.