Johnson (10-8) has been on a roll since just before the All-Star break winning seven of his last eight starts, with the lone loss coming to the Pirates in a game where Jeff Karstens beat him 2-0.
"He had really good stuff today," D-backs manager Bob Melvin said. "I think he's got the light at the end of the tunnel, a little bit of a countdown going for him. That adds to it. First and foremost is winning for the team, but there is a little added incentive to roll off a few wins in a row."
Johnson's fastball had good life on it, hitting 93 mph regularly according to the stadium radar gun, while his slider was sharp and he was able to mix in some split-finger fastballs as well.
Chad Tracy got the D-backs on the board in the second with a two-run homer off Rockies starter Ubaldo Jimenez (8-11) as he continued his dominance at Coors Field. After going 3-for-5 with a double, homer and two RBIs, Tracy is now hitting .353 with seven doubles, five homers and 21 RBIs in 29 career games here.
"I think the full day off [Monday] helped him some," Melvin said. "He was on it all night."
The lead didn't last long, though, as Chris Iannetta homered to lead off the bottom half of the frame and two outs later back-to-back doubles by Clint Barmes and Ian Stewart tied things up.
"I was disappointed that I gave back two runs after Trace hit the home run," Johnson said. "It took me a couple of innings to get going, unfortunately. After I gave up those two runs, I was able to get into a groove. My stuff got a little bit better, my slider got a little bit better, my location of my fastball and my splitter."
That was all the runs Johnson allowed before leaving after six having given up five hits and one walk while fanning seven.
The D-backs untied the game with a two-run sixth. Chris Young and Chris Snyder led off the frame with back-to-back doubles to give Arizona a 3-2 lead.
Johnson then helped himself by lining a 96-mph fastball from Jimenez into right to score Snyder.
"To get an RBI to make it 4-2 instead of 3-2 is big," Johnson said. "Now they have to put someone on base to come up with the tying run and I think our pitching staff, most pitchers in the National League take pride in what they do. When someone is throwing 98 mph with a pretty good curveball, you just hope that you can make contact and you never know with this field, anything is possible."
Johnson's back, which he has surgically repaired in each of the past two years, was stiffer than usual during his pregame warm-ups, a condition he attributed to extra batting practice that he took on the team's recent homestand.
Johnson gave Melvin a scare in after the single when he grabbed his lower right back with his right hand just before reaching first base.
"I went out there and asked him and he said, 'I just haven't run in a while,'" Melvin said.
Johnson said he didn't injure the back and that Melvin was "just making sure."
The game marked the debut of outfielder Adam Dunn, who was acquired by the D-backs on Monday from the Reds. Playing right field and hitting fourth, Dunn was 1-for-3 with two walks and a pair of strikeouts.
"I didn't think I'd be as nervous as I was," Dunn said. "Swung at some pitches I probably shouldn't have and took some pitches that I probably should have swung at."
Earlier this year Dunn watched teammate Ken Griffey Jr. get his 600th homer and seemed excited about the possibility of seeing more history from Johnson.
"I had to catch myself from just kind of watching him," Dunn said. "What he did tonight, I don't know how he's been pitching lately, but that's impressive for a guy to come out and shut these guys down like he did. That's pretty awesome."