Tyler Chatwood took a big step in the eyes of his manager. Jim Tracy would love to see him take one or two more.

"As good as he was, he can be a little better," Tracy said. "There were moments when he pounded his fastball early. When he gets strike one it makes him that much more effective."

Chatwood combined with three relievers on a three-hitter and the Colorado Rockies beat the San Francisco Giants 3-0 Friday night.

Wilin Rosario doubled twice, threw out two baserunners and scored a run. Tyler Colvin added two hits and an RBI for Colorado.

"These are the games that make it fun," Rockies infielder D.J. LeMahieu said. "This is when you feel like a team. The pitchers are doing their job, the defense goes great and the offense scratches out some runs."

The Rockies, swept at home by the Giants a week ago, scored all their runs off Tim Lincecum. The two-time NL Cy Young Award winner had allowed only two runs in his previous two starts.

San Francisco fell into a tie with the Los Angeles Dodgers for first place in the NL West.

Chatwood (2-2) scattered three hits over five innings in his second start this season. The right-hander, who began the year in the bullpen, had two strikeouts and two walks.

"I was erratic last time. This time I was more consistent," Chatwood said. "The defense definitely helped. Usually a leadoff walk will come back to haunt you but when we threw out the runner in the fifth when Lincecum struck out, that allowed me to get back into rhythm."

It was the third shutout by Rockies pitchers this season and the second in four games. They beat the Dodgers 2-0 on Monday and blanked Arizona 4-0 on June 4.

Chatwood, making his second start in six days against the Giants, kept San Francisco's bats quiet before Colorado's bullpen stymied the Giants over the final four innings.

Adam Ottavino pitched two innings, Matt Belisle worked the eighth and Rafael Betancourt pitched a 1-2-3 ninth for his 20th save.

"Timmy was fine, we just didn't swing it," Giants manager Bruce Bochy said. "It's pretty simple. (Lincecum) wasn't the problem. Three hits was the problem."

LeMahieu singled leading off the third, was sacrificed to second and scored from third on Dexter Fowler's single to left-center. Fowler tried to stretch his hit into a double but was thrown out by center fielder Angel Pagan.

In the fourth, Rosario doubled and scored on Colvin's RBI single to make it 2-0.

Chatwood wasn't overpowering but he was effective.

The Giants got a runner to second in the third and fourth but failed to advance him.

In the fifth, San Francisco put runners on the corners with one out but Chatwood worked out of it with some help from his teammates. Chatwood struck out Lincecum, and Rosario threw out Brandon Crawford trying to steal second on the same pitch.

Colorado's defense came up big again in the sixth.

With Melky Cabrera on first following a two-out error by third baseman Chris Nelson, LeMahieu knocked down Hunter Pence's sharp grounder up the middle and scrambled to make a one-handed flip to shortstop Josh Rutledge covering the bag.

Nelson made up for his gaffe and gave the Rockies some breathing room with a sacrifice fly in the seventh that knocked in Colvin to make it 3-0.

Colorado's pitching did the rest.

Ottavino pitched out of a two-on, one-out jam in the seventh, and San Francisco didn't manage a baserunner the rest of the way.

Lincecum, who had won his previous two starts, struck out three and walked two in seven innings.

"I gave them too many good pitches to hit," he said. "It was just a tough day. Losing, getting shut out like that at home, is tough for us."

NOTES: Colorado 1B Todd Helton underwent surgery to repair a torn labrum in his right hip, bringing an end to a disappointing season. Helton, who turns 39 on Aug. 20, has said he plans to return for the final season of his two-year contract. ... Rockies SS Troy Tulowitzki (groin) is running without pain but isn't yet close to playing. Tulowitzki has been on the DL since May 31. ... RHP Matt Cain (10-5) tries to end his four-start winless streak for the Giants on Saturday. LHP Drew Pomeranz (1-6) pitches for the Rockies.