PHOENIX -- Jeff Francis was just getting comfortable when Colorado manager Clint Hurdle took him out.
"After the line of games he put together going into this start, I had my mind made up when I got to the ballpark that if he gave us good effort through six innings, that's going to be plenty," Hurdle said Sunday. "Leave his confidence at a high and turn it over to the people who have gotten us in position to build some of the momentum we've been building."
Todd Helton and Cory Sullivan each had an RBI double. Matt Holliday drove in a run with a single, and Clint Barmes added a sacrifice fly for Colorado.
Francis (13-12) was 1-5 in his previous seven starts. But he gave up only three hits and walked none in this game to move out of a tie with Toronto's Gustavo Chacin for most wins by a rookie. The 24-year-old left-hander leads Colorado's staff in victories.
"I really didn't think he was going to take me out," Francis said. "I was surprised. But it's not really my job to second-guess those things. We won the game, that's the most important thing, so I'm not too worried about it."
Chad Tracy hit his second homer in two days for the Diamondbacks, who left the bases loaded in the seventh and eighth.
"We have to put more runs on the board," he said.
Scott Dohmann worked a nerve-racking seventh, allowing a one-out homer to Tracy and walking three to load the bases with two outs before Andy Green flied out.
Mike DeJean had nearly as much trouble in the eighth -- giving up Alex Cintron's single, walking Craig Counsell and hitting Tracy with a pitch before ending the inning by striking out Tony Clark and Troy Glaus.
Ryan Speier got the last three outs.
Francis and Dohmann made Colorado's two-run first inning stand up until the eighth, when Arizona reliever Oscar Villarreal loaded the bases on two walks, including an intentional pass to pinch-hitter Helton, and a bunt single by Omar Quintanilla.
Barmes' sacrifice fly made it 3-1. Sullivan followed with his run-scoring double and scored behind Helton on Atkins' two-run double into the left-field corner.
"It just seems like the last three or four days I've been able to keep my legs under me and kind of drive the ball," said Atkins, who has four doubles, two homers and 11 RBI in his last four games. "It's been a long time since I've had six hits and none of them have been singles."
Russ Ortiz (5-11) pitched five innings, allowing two runs, six hits and four walks. He is 1-9 in his last 12 starts.
Francis was on from the get-go, working two perfect innings before Green bunted his way on in the third. But catcher Danny Ardoin picked Green off first.
Tracy singled in the fourth and Green had his second hit in the sixth, but each was erased on a double play.
"He's a four-pitch pitcher," Arizona manager Bob Melvin said. "He mixes it up well, and he kept us off-balance."
Atkins hit an RBI double in the first and Holliday followed with a run-scoring single.
Ortiz kept the deficit to 2-0 through five innings despite loading the bases twice.
The right-hander hit Ardoin with a pitch and walked one in the fourth before Barmes hit into an inning-ending double play. In the fifth, Sullivan singled and Ortiz walked two to load the bases with two outs. Then Quintanilla hit a pop fly to center.
Umpire Gary Darling was scratched just before the game because of a hamstring pull. Peter Durfee replaced him as the third base ump. ... Sullivan raced to the 413-foot sign in right-center to pull in a drive by Glaus with his back to the wall, then ran into left-center to catch a liner by Conor Jackson for the first two outs of the second. "It's a huge wall, so that's kind of an impact on you when you're going back there," Sullivan said. "I think it takes a few times of playing center field here to get used to that feeling." ... Tracy saved a run in the fifth when he dived for a liner to right by Brad Hawpe.