DENVER -- Aaron Cook never doubted he would be back on the mound after a frightening illness.
Cook pitched his third career complete game to win his fifth straight decision, and Matt Holliday keyed a six-run fourth inning with a three-run double as the Colorado Rockies avoided a three-game sweep with a 7-2 victory over the Arizona Diamondbacks on Sunday.
"Once the doctors told me I was healthy, I knew it was just a matter of time before I was able to get back out there and compete for nine innings," said Cook, who missed nearly a year with complications from blood clots in his lungs. "I knew I would be back."
Cook (5-1), who returned from the 60-day disabled list on July 30, struck out five, walked one and allowed eight hits. He has given up eight runs in his last 39 innings.
"This guy has a very workable package and a passion to play the game," Colorado manager Clint Hurdle said. "I was open-ended with him today because of his competitiveness and he made a statement to finish it off and throw a complete game with 118 pitches."
It was Cook's first complete game since Aug. 1, 2004, also at home against Arizona. The Rockies' only other complete game this year was thrown by Jason Jennings on Aug. 22 against the Dodgers.
"I went after them with my sinker and mixed in some sliders and changeups," Cook said. "I kept them off balance."
His sinker helped him get 17 groundball outs.
Holliday was 2-for-4 with three RBI. Garrett Atkins, Clint Barmes and Cory Sullivan had two hits apiece for the Rockies, who ended their four-game losing streak.
Diamondbacks starter Russ Ortiz (5-10) lasted only three-plus innings. He allowed six runs and four hits, dropping to 1-8 in his last 11 starts.
"I wish I could explain what happened," Ortiz said. "Nothing seemed to be where I wanted it and it was after Holliday's at-bat that it seemed to change."
Troy Glaus homered twice for Arizona to give him 34 home runs this season and four in three games. It was his 18th career multihomer game.
"Only Glaus seemed to have the right book on Cook," Hurdle said. "We're fortunate he didn't share it with the rest of the team."
The Diamondbacks took a 1-0 lead with one out in the fourth inning when Glaus homered to center on the first pitch he saw.
Ortiz allowed only a walk in the first three innings, but faced eight batters in the fourth and didn't retire any of them.
"Russ just lost it in a hurry," Arizona manager Bob Melvin said. "He threw the ball great for three innings and then lost his command. He wasn't as crisp in the strike zone."
Todd Helton walked to load the bases after singles by Barmes and Sullivan. Holliday cleared the bases with a double off the right-field wall.
"Ortiz left a fastball up and away from me," Holliday said. "I worked the count to 3-2 to see some more pitches and finally got one I could handle and drive."
Atkins had an RBI single and Brad Hawpe, who had walked, came home when shortstop Alex Cintron's throw to second base pulled Craig Counsell off the bag.
Oscar Villarreal replaced Ortiz with a 2-1 count on J.D. Closser and retired the next two batters. Atkins scored on Cintron's second error of the inning and Colorado led 6-1.
Helton added an RBI single in the seventh.
Cintron left the game after fouling a ball off his right foot in the sixth. ... Glaus hit the first home run off Cook this year. Cook had gone 219 batters and 49 2/3 innings since the last homer he allowed, to John Vander Wal on Aug. 7, 2004. ... Atkins has a 16-game hitting streak, matching Juan Pierre (2000) for the longest by a Colorado rookie.