The Chicago White Sox search for their missing offense goes on.

Paul Konerko's leadoff home run in the seventh ended a string of 18 scoreless innings for the White Sox, but that was all they could muster against Daniel Hudson in a 4-1 interleague loss to the Arizona Diamondbacks on Friday night.

"Today we did nothing, nothing exciting about it," Chicago manager Ozzie 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."

The White Sox have two runs — total — in their last three games, all of them losses.

Hudson, who came up through the White Sox minor league system, was traded to Arizona last July 30 for Edwin Jackson, the loser in Friday night's game.

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

Hudson threw a three-hitter in his first career complete game.

"Daniel threw the ball very well," Guillen said, "that and a combination of a struggling team at the plate. He has been throwing the ball good for them. He was throwing 3-2 change-ups to guys. That is confidence. That is maturity. 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."

Hudson (8-5) earned his eighth win in nine decisions since starting the season 0-4. His 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.

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. 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 shortstop Stephen 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.

The error marred an otherwise outstanding defensive game for Drew, who fielded 10 grounders flawlessly, several of them tough plays, and threw the runners out. He also caught a pair of pop ups. He also was part of the game-ending double play on a grounder to Hudson.

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.

Hudson, who came into the night averaging 105 pitches per game, threw a career-high 119, 82 strikes. Jackson allowed four runs on eight hits in 6 2-3 inning. He struck out eight with no walks but was called for a balk.

"They got some runners in scoring position early in the game and capitalized on it the first inning," Jackson said. "In the seventh it was just one of those things trying to go and battle and keep the team as close as you can. Keep coming at them and keep making them at the ball in play."

NOTES: Hudson is 15-6 in 26 starts since coming to Arizona. ... 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.