"There's no rhyme or reason to it," Johnson said of his domination of Chicago.
Johnson (7-7), winning his third in a row after six consecutive losses, allowed two hits, struck out four and walked one in seven innings for his 291st victory in a swift, 2-hour, 18-minute game.
"That's as good a stuff as I've seen in a while," Arizona manager Bob Melvin said. "I think there was a little extra amp today. ... To do what he did to that club that's No. 1 in the National League in offense is pretty special."
The 44-year-old left-hander, who entered the game with a 1.98 career ERA against Chicago, is the second pitcher to go at least 10-0 against the Cubs. The other was Sal Maglie, who was 10-0 in 19 starts against Chicago from 1954 to 1958.
Harden, in his second start for Chicago after a trade with Oakland, allowed one hit in seven innings -- Alex Romero's first major league home run to lead off the sixth. It was the first run Harden allowed in 10 1/3 innings since joining the Cubs.
"I made one bad pitch," Harden said, "threw a two-strike changeup right down the middle that kind of cut into the guy."
Harden (0-1) went seven innings, striking out 10 and walking two in the NL Central leader's fourth loss in five games.
"He was lights out," teammate Derrek Lee said. "It's a shame we can't win that game for him. You can't get much better than that."
After watching his team score one run in two games and get shut out in another of its four since the All-Star break, Cubs manager Lou Piniella said there would be no batting practice Tuesday or Wednesday.
"We're going to come out here and stretch and play, that's it," he said. "I'm tired of seeing balls flying all over in batting practice and when the game starts seeing nothing. So we'll just go play and hopefully that will get it done."
The Diamondbacks hadn't even had a hard out before Romero pulled Harden's 1-2 pitch, just clearing the right-field fence to make it 1-0.
The Cubs, on the other hand, had plenty of well-hit balls against Johnson, but they were caught either at the wall or by the wide-ranging Chris Young in the left- and right-center gaps.
"That's the type of center fielder that he is, that we envision him being," Melvin said. "A guy that's going to steal hits and he stole quite a few today, whether it was in right-center or left-center. Without those plays, we're looking at a different game. Those are all extra-base hits."
It wasn't easy. Qualls walked Ryan Theriot, then first baseman Chad Tracy bobbled pinch-hitter Kosuke Fukudome's grounder. Reed Johnson grounded into a double play, then Aramis Ramirez bounced out to second to end it.
The shaky finish came one day after Arizona closer Brandon Lyon gave up five ninth-inning runs in a 6-5 loss to the Los Angeles Dodgers.
"It was nice to win a game like that," Randy Johnson said, "to kind of set the tone, to come to the ball park tomorrow having won a game almost equivalently to the game we lost yesterday."
Harden retired the first 12 batters he faced, seven by strikeout, before walking Tracy on a 3-2 pitch to lead off the fifth. Tracy took second on a wild pitch, but was stranded there.
Chicago got the leadoff runners on base to no avail with singles by Jim Edmonds in the third and Reed Johnson in the fourth.
"I thought we hit the ball well," Lee said, "we just didn't have anything to show for it."
- With Owings pitching an inning of relief, Arizona will start right-hander Yusmeiro Petit on Tuesday.
- Romero is playing right field in place of injured Justin Upton.
- Cubs OF Alfonso Soriano will report to Triple-A Iowa in Tucson on Tuesday to continue rehabilitation from a broken finger.
- Chicago RHP Kerry Wood will treat the blister on his finger with ointment then attempt to throw on Wednesday, Piniella said.
- The Cubs fell to 21-29 on the road.
- Drew has seven triples.