Eaton (10-3) won for the first time in three starts since coming off the disabled list for an injured middle finger on his pitching hand. His last win came on June 9, against Cleveland, and he was hurt in his following start, at Detroit.
"I don't know how many months or days it's been," Eaton said. "It's nice to get back on the horse."
Eaton became a 10-game winner for the second straight year, although he's having a much better season than last year, when he was 11-14.
Eaton knows he'll be needed as the Padres to try to stay atop baseball's weakest division.
"It's a challenge I'm willing to take on fully," said Eaton, who trails teammate Jake Peavy by two victories. "If I can catch Jake in wins, obviously that would be a good thing. But at the same time I want Jake to get his wins, too. Right now it's a selfish time of the year for a pitcher. You want to get your wins; you don't want to have any losses."
The right-hander held the Rockies to two runs and five hits in six innings. He might have gone longer, but threw 114 pitches. He struck out five and walked one.
"The arm strength and stamina's there," Eaton said. "I felt good in the sixth inning, made some good pitches and got them 1-2-3. It's definitely nice to go out there in the sixth and put up a zero."
The Padres (69-69) took a six-game lead over San Francisco, which lost 9-8 at Los Angeles, in the division.
The Padres beat the last-place Rockies for only the second time in five games in San Diego since Aug. 26. Colorado's Todd Helton went 0-for-4 after reaching base five times and scoring twice in the Rockies' 6-5 win on Tuesday night.
After Sullivan tripled with two outs in the eighth, Akinori Otsuka struck out Helton.
"I got some good pitches to hit, but I tried to do a little too much," said Helton, whose 26-game hitting streak against the Padres ended.
Colorado's Cory Sullivan had three hits, falling a homer short of the cycle, as the Rockies' four-game winning streak was snapped.
Trevor Hoffman pitched the ninth for his 36th save. It was his 33rd straight, and the 429th of his career.
With the score tied at 2, San Diego's Xavier Nady was walked with the bases loaded by Jeff Francis (12-11) to force in the go-ahead run with two outs in the fifth. Loretta forced Eric Young at second, took third on Joe Randa's double, and, after Brian Giles walked, scored on Nady's walk.
"I was confident I could throw that pitch for a strike," said Francis, who walked Nady on a curveball. "He froze on it. If I could drop that ball in there, we're not even talking about that pitch."
San Diego got an insurance run in the seventh when Brian Giles drew his 100th walk -- tops in the majors -- stole second and took third on a throwing error by catcher J.D. Closser, and scored on a wild pitch.
Loretta gave San Diego a 2-0 lead with his leadoff homer to left in the third, his second. Rookie Ben Johnson hit an RBI double in the second.
Francis lost for the fourth in five decisions. He lasted 4 2/3 innings, allowing three runs and seven hits, walking five and striking out three.
- The last Padre to walk 100 times in a season was Rickey Henderson with 125 in 1996.
- Padres manager Bruce Bochy said there's a 50-50 chance Peavy, who has a sore right shoulder, will make his scheduled start Friday night at Los Angeles. Bochy said Peavy felt a lot better Wednesday, but the team won't decide until after Peavy throws on Thursday.
- Padres C Ramon Hernandez was back in the starting lineup for the first time since July 24 in Philadelphia. He had surgery to repair torn cartilage in his left wrist on July 29, and came off the disabled list on Friday.