Jhoulys Chacin knew he had little margin for error going into Thursday's start against Johnny Cueto and the Cincinnati Reds.

He found out just how little. The Colorado right-hander allowed two first-inning runs and nothing else, but the Rockies wound up with a 2-1 loss to the Cincinnati Reds.

Chacin went eight innings in his second complete game of the season. His other was a shutout against the Cubs on April 15.

"(Cueto's) very good," Chacin said. "When you face him, you know it's going to be a close game. What's more frustrating is getting the first two outs and then allowing four hits and two runs."

The Reds took a 2-0 lead with a two-out, four-hit burst in the first against Chacin, who went into the game limiting opposing batters to a league-low .208 batting average.

Joey Votto lined a double off the left-field wall and scored on Jay Bruce's single up the middle. Bruce moved up on Ramon Hernandez's single and took third on Drew Stubbs' infield single to third baseman Chris Nelson, whose errant throw to first allowed a run to score.

Chacin ended the inning by getting Paul Janish to ground into a forceout and retired the next 13 batters.

"I felt fine, especially my fastball," Chacin said. "I threw it pretty much every time where I wanted to. I got more outs with my fastball than anything — my fastball, change and slider. I didn't throw too many curveballs."

Manager Jim Tracy hadn't seen a better Chacin fastball, he said.

"He spotted his fastball as well as I've seen him do it since he joined us," Tracy said. "His change was phenomenal, and his curveball was effective."

Chacin (9-9) was almost as effective for Colorado, tying his season high with nine strikeouts while allowing six hits and two runs. He fell to 1-5 over his last 10 starts despite finishing with a flourish, striking out the side in eighth.

"You couldn't ask Jhoulys Chacin to do one more thing than he did," Tracy said.

Tracy was able to find another positive in Chacin's performance, coupled with the seven innings turned in by newcomer Kevin Millwood for the Rockies on Wednesday night.

"What he and Millwood did puts our bullpen back where it needs to be when you're playing 20 games in 20 days," Tracy said.

Cueto, hampered by an upset stomach while pitching a season-low 3 2-3 innings in his last start at Wrigley Field, bounced back to throw three-hit ball for seven shutout innings. He took over the NL ERA lead, lowering his mark from 2.06 to 1.94.

Cueto (8-5) struck out a season-high nine, including Carlos Gonzalez with the bases loaded to end the fifth inning, walked two and hit a batter. He missed the first month of the season with soreness in his upper right arm, but he qualified for the ERA lead with this outing.

Aroldis Chapman allowed the first two Rockies to reach in the eighth before getting Gonzalez to ground into a double play and striking out Eliezer Alfonzo. Francisco Cordero allowed Seth Smith's 12th home run of the season leading off the ninth, then earned his 22nd save in 27 chances.

For the second consecutive day, Tracy lamented Colorado's missed opportunities, which included leaving the bases loaded in the fifth.

"We had more chances to score than they did," he said. "At some point in time, when you get an opportunity, you've got to cash in. In some cases, it might not have to be a hit — just a ball to the outfield."

NOTES: Despite his eight-game hitting streak, Colorado SS Troy Tulowitzki did not start. "He came to me (Tuesday) and said his legs were starting to feel a little heavy," manager Jim Tracy said. "We wanted to be proactive. If not, you risk pushing the guy." Tulowitzki later pinch-hit. ... Alfonzo batted higher than sixth for the first time this season in nine starts. ... Reds RHP Bronson Arroyo will be looking for his first win in eight starts since beating the Orioles at Baltimore on June 25 when he starts Friday night at home against San Diego. ... Colorado RHP Aaron Cook is 1-4 in his career against the Cardinals going into his start Friday at St. Louis.