Esmil Rogers did a little bit of everything. It was just enough for the Colorado Rockies.

The right-hander pitched just well enough for six innings and turned in a key hit and fielding play as the Rockies sent the Reds to their fifth loss in six games with a 3-2 win on Tuesday night.

Troy Tulowitzki hit a two-run homer and Dexter Fowler had two of Colorado's five hits while driving in the go-ahead run for the Rockies, who have won three of four.

Rogers (6-1) allowed eight hits and two runs with six strikeouts and two walks to win his third consecutive start.

"I just want them to give me the opportunity to pitch," said Rogers, who started his career as a shortstop. "I know I can do it. I'm not thinking about it. I'm just trying to make my pitches."

He did while shutting down the Reds with runners in scoring position. They went 0 for 9 with runners in scoring position.

"Credit Esmil with a gutsy performance," Rockies manager Jim Tracy said. "His pitch count got up there, because of the amount of traffic he dealt with."

Cincinnati's failure in the clutch left Dontrelle Willis still looking for his first win in six starts since being called up from Triple-A on July 10.

"I'm happy with the way I'm playing but I want to play better," said Willis (0-2), who lowered his ERA from 3.41 to 3.16 and finished with a season-high 10 strikeouts. "I like the way the team is playing but it seems like we're playing well enough to lose. I'm all about winning. I like shaking hands. I'm fine if we win 10-9."

Matt Reynolds, Josh Roenicke and Rex Brothers combined for two scoreless innings of relief before Rafael Betancourt pitched the ninth for his first save of the season and 20th of his career.

Willis, who went into the game with Cincinnati's longest active hitting streak at five games, followed Ramon Hernandez's second-inning leadoff single with a one-out triple into the corner in right. The triple was the sixth of Willis's career and first since he hit three for Florida in 2007.

Willis retired the first 10 batters before Fowler lined a single up the middle in the fourth. Carlos Gonzalez forced Fowler at second, but Tulowitzki lined a 0-1 pitch 351 feet into the first row of the seats in left for his 22nd homer and a 2-1 Colorado lead.

"(Willis) left one pitch out over the plate, and I got a good swing on it," Tulowitzki said. "He did a good job tonight."

The Reds tied it in the fourth on Todd Frazier's baserunning. He was on second with Dave Sappelt on first and one out when Edgar Renteria hit a sharp one-hopper that Rogers knocked down, picked up and threw to Tulowitzki to force Sappelt at second. Frazier rounded third, drawing a throw behind him from Tulowitzki, and slid across the plate just of third baseman Ty Wigginton's relay and catcher Chris Iannetta's tag.

The Rockies regained the lead in the fifth, loading the bases with one out on Wigginton's single to left, Iannetta's walk and a bunt single by Rogers. Eric Young Jr. grounded into a forceout at the plate, but Fowler gave Colorado a 3-2 lead with a single to center.

Rogers helped maintain that edge in the sixth by scrambling off the mound to field Willis' bunt with runners on first and second and nobody out and throwing Hernandez out at third.

"We knew we had a slow runner on second base," Rogers said. "(Wigginton) told me, 'I'm going to let you field it. Just catch it and give me the ball.'"

"We know our pitchers," Tulowitzki said. "He's pretty athletic. He can pretty much cover the whole right side. Sometimes, you've got to take chances to win games."

Notes: The Reds placed RHP Logan Ondrusek on the 15-day DL with a strained right forearm on Tuesday, retroactive to Monday, and recalled LHP Travis Wood from Triple-A Louisville. ... RHP Mike Leake, Cincinnati's starter against Colorado on Wednesday, has a 2.55 ERA in four starts since the All-Star break, but is only 1-3. ... Colorado still had not announced Wednesday's starting pitcher, but it is expected to be veteran RHP Kevin Millwood, who unofficially joined the team Monday after pitching in the Boston and Yankee farm systems this season. He is a combined 7-2 with a 4.32 ERA in 16 starts. ... Millwood is starting in place of RHP Juan Nicasio, who is recovering from surgery to repair a broken bone in his neck after getting hit by a batted ball on Friday. "He had another great day today," Tracy said. "He's up and moving around and eating. He's definitely moving in the direction you want to see him."