Johnson threw seven innings of two-hit ball, as the Diamondbacks (49-50) defeated the Cubs, 2-0. He threw just 86 pitches as he inched closer toward win No. 300. The Unit, who picked up career win No. 291, has now won three consecutive games after going winless in his previous eight and has evened out his season record at 7-7.
"We get a Randy like that and we're going to feel good every time he goes out there," said D-backs manager Bob Melvin. "That's as good of stuff as I've seen in a while. I think he was a little extra amped today to pitch in this game against a team he's had some success against, yet a different club than he's ever really seen before."
The 44-year-old Johnson was hit hard, but the Cubs (58-41) couldn't find any gaps. He had 15 fly-ball outs, compared to just two ground-ball outs and four strikeouts.
The Cubs lead the Majors in batting average (.280), run differential (+111) and on-base percentage (.357), but against Johnson, they looked nothing like that team.
"Every pitch means something in a game like that," said Johnson, who pitched to catcher Chris Snyder for the first time all year after he used Miguel Montero as his personal catcher.
"It's nice to win a ballgame like that, to kind of set the tone."
On the offensive side, the D-backs only had two hits of their own. It was the first time in franchise history that the D-backs have won while recording only two hits.
Cubs starting pitcher Rich Harden had a perfect game through four innings and a no-hitter through five. He walked Chad Tracy in the fourth. To break up Harden's no-hitter, rookie Alex Romero stroked a 362-foot home run -- the first of his career -- over the right-field wall.
"I had a good night," Romero said through his translator, Augie Ojeda. "I just saw that he left a hanging changeup and I had a good swing on it and the ball went out.
"With two strikes, I just wanted to make contact with the ball."
The D-backs remained in a tie for first place with the Dodgers, who won in Colorado.
With a taxed bullpen, Melvin was forced to alter his bullpen plans. He used Micah Owings, who was scheduled to start Tuesday night's game, as an eighth-inning setup man for the first time in his career.
The experiment worked. After allowing a leadoff walk to Jim Edmonds, Owings got Ronny Cedeno to fly out to center and pinch-hitter Daryle Ward to ground into a 3-6-1 double play to end the inning. On the play, Owings looked like he did in his high school days when he covered first, stretching just like a first baseman with a wide stretch.
"It brought back some memories, stretching it out over there," Owings said.
With Owings pitching Monday, Yusmeiro Petit will get the call in Tuesday night's game. Owings said he could get used to a role of setup man.
"I'll take their lead. Whatever they need me to do, I'll do it," Owings said.
Closer Brandon Lyon was unavailable after he had pitched on three consecutive days, and Melvin called on setup man Chad Qualls for the save. Qualls hadn't pitched since July 13, after he experienced back stiffness earlier in the homestand.
The inning started out shaky. Qualls walked Ryan Theriot to lead off the inning and pinch-hitter Kosuke Fukudome reached on an error by Tracy on the following play. No. 3 hitter Derrek Lee grounded into a 6-4-3 double play and cleanup hitter Aramis Ramirez ended the game by grounding out to Orlando Hudson.
It was Qualls' second save of the season.
"The way we had it drawn up today, if we got to that point, Micah in the eighth and Qualls in the ninth," Melvin said. "We felt like [Johnson] was tired, and I think he indicated a little bit that if he went back out there, we needed to have somebody up, so we went with a clean inning with Micah."
The D-backs tacked on another run in the bottom of the eighth inning when Stephen Drew hit a triple, scoring Snyder, who reached on a leadoff walk.
"It was a big win for the team, a big win for Randy," Qualls said. "Anytime we can get him one more closer to 300, that's a great feat. I'm just glad that the team won and that Randy was on the winning part."