PHOENIX -- Struggling to find his command, Randy Johnson needed help for his 287th career victory.
Stephen Drew supplied it.
The Big Unit (3-1) gave up four runs and nine hits, striking out four and walking none.
"Not his best stuff today, but he gives us five (innings), and we're in the lead when he leaves and he ends up getting a win," Arizona manager Bob Melvin said.
Melvin said Johnson bruised his pitching hand trying to field a bouncer by Jeff Baker in the fourth. Johnson left without speaking to reporters.
"He doesn't want to be a five-inning pitcher," Melvin said. "That's not what he's all about. He wants to be at least a seven-inning guy, so I know he was disappointed that he has to come out after five innings."
Johnson won because the Diamondbacks hammered Colorado starter Jeff Francis (0-4), a 17-game winner for the NL champions a year ago. Francis went 4 2/3 innings, his shortest start, and gave up eight runs on 13 hits, both season highs.
Drew had the biggest blow -- a three-run homer in the second that gave Arizona a 6-1 lead.
"It felt good with the team coming out early and putting up some runs," said Drew, who hit his fifth homer.
Drew often bats down in the order against lefties. But he's hitting .412 (7-for-17) lifetime against Francis.
Melvin said he'll probably keep Drew high in the batting order, against lefties and righties. "I think he thrives on hitting up in the lineup," Melvin said.
Garrett Atkins hit his seventh homer and Ryan Spilborghs doubled twice for the Rockies, who fell nine games behind the NL West leaders.
The Diamondbacks were relieved to be back in the feeble NL West, where they are 18-5. Arizona is 6-10 against everyone else.
"It's good to be able to play well against our division," right fielder Justin Upton said. "We've seen these guys quite a few times, so we feel comfortable."
Chris Young had three hits for the Diamondbacks, who improved to 6-1 against Colorado.
The Rockies swept the Diamondbacks in the NL Championship Series last fall. Francis beat Arizona in the opener of that series, but the Diamondbacks have shelled him in three meetings this year, piling up 20 runs on 32 hits -- including seven homers -- in 16 innings.
"This is three times he's faced this club, and they've squared him up pretty good," Colorado manager Clint Hurdle said.
Francis started his career 7-1 against Arizona but has lost his last four regular-season starts against the Diamondbacks.
"He's got some history on his side that he needs to continue to pay attention to," Hurdle said. "That being said, you've got to perform, execute and make pitches."
With Chase Field's roof open on a 77-degree evening, the Diamondbacks pounced on Francis with four straight singles to open the first inning. Orlando Hudson, Conor Jackson and Mark Reynolds each had RBI singles as Arizona took a 3-0 lead.
"They hit four singles to start off the game, and that's going to kill you," said Francis, whose ERA climbed one run to 6.27. "It's not like they hit four homers to start the game, but they put themselves in a position to score a lot of runs, and I couldn't put out the fire."
Colorado cut it to 3-1 in the second on a single by Atkins, a double by Spilborghs and a sacrifice fly by Jeff Baker.
The Diamondbacks responded with three more in the second. Johnson, a .167 hitter, led off with a drive off the base of the left field fence, but he stumbled as he rounded first and was held to a single.
"I thought it was gone," Melvin said. "I think he did too. I think he was watching it, might have had something to do with it at first base."
Young singled and Drew followed by hitting a 1-0 delivery into the right field seats to give the Diamondbacks a 6-1 lead.
With the victory, Johnson tied Bert Blyleven for 26th place on the all-time list. He's 16-7 against Colorado. ... Atkins has hit in 11 straight games. ... Hudson was back in the lineup after missing six games with a hamstring injury. ... Arizona LHP Doug Davis, who is returning from thyroid cancer surgery, will start for Triple-A Tucson on Sunday. Davis could rejoin the Diamondbacks' rotation next week. ... Colorado manager Clint Hurdle rested 1B Todd Helton, a career .238 hitter against Johnson.