Updated

Brandon Crawford's bat is finally catching up to his glove, and both are peaking at just the right time for the San Francisco Giants.

Crawford tripled, doubled and scored on a passed ball in another highlight-filled game defensively, and Hunter Pence singled home the go-ahead run in the sixth inning to lead the San Francisco Giants past the Colorado Rockies 2-1 on Monday night.

After Crawford's error-filled start to the season, Giants manager Bruce Bochy feels the shortstop's first full season in the majors might be Gold Glove worthy. Crawford entered the game with a .985 fielding percentage since the All-Star break, second-best among National League shortstops.

"I don't know who is playing better defensively," Bochy said. "I don't. We talked about his start. He has confidence going and a sense of belonging. He's done a great job."

Madison Bumgarner (15-10) allowed one run and four hits in six innings while walking a career-high five, gutting out a start in which he said his "mechanics were probably the worst they've been all year." The lefty struck out six and relied on a strong defensive effort to extend San Francisco's lead to a season-high eight games over the idle Dodgers in the NL West.

"That feels better to win a game like that when you're really sharp," Bumgarner said.

Pence's RBI single off reliever Guillermo Moscoso (3-2) handed Colorado its 10th loss in 12 games.

Rockies starter Jhoulys Chacin gave up five hits and a run in five innings. He also doubled and scored on Josh Rutledge's triple in the fifth.

Four relievers held Colorado scoreless before Sergio Romo struck out pinch-hitter Jason Giambi for his 12th save in 13 chances, helping San Francisco open a 10-game homestand by winning for the fifth time in six games.

Buster Posey went 2 for 4 and threw out Dexter Fowler at second in the first inning, backing Bumgarner's first win in five starts. And while Bumgarner hardly looked sharp at the start, walking four of his first 11 batters, he pitched out of jams and allowed his defense to do the rest.

Crawford dug out a ball deep in the hole and threw across his body to get Jordan Pacheco at first base for the second out of the third.

"It's a play that we practice every once in a while," Crawford said. "Even just kind of messing around sometimes because it's a tough play to make."

In the bottom of the inning, Crawford hit a leadoff triple off the top of the wall in center and scored on catcher Wilin Rosario's 20th passed ball of the year to give San Francisco a 1-0 lead.

With the Rockies doing little to back Chacin, the pitcher helped his own cause when he doubled and scored on Rutledge's two-out triple in the fifth.

Crawford doubled leading off the San Francisco fifth and tried to score when Angel Pagan singled, but was cut down at home on left fielder Andrew Brown's one-hop throw.

Pence's single in the sixth scored a tumbling Pablo Sandoval from second to put the Giants ahead 2-1 and runners on the corners with no outs. Moscoso got Brandon Belt and Xavier Nady to pop out and struck out Crawford, pumping his fist in celebration while walking off the mound.

"There are no moral victories, OK?" Rockies manager Jim Tracy said. "But when you look at the fact that we had six or seven rookies on the field tonight. ... With these young people, they're going to make mistakes and we know that. It's never good to lose, please don't misunderstand what I'm saying, but when you have young people involved in games like this, there's one (heck) of a learning point there."

The momentum never carried over.

Rockies slugger Carlos Gonzalez was out of the starting lineup with a sore left hamstring after cramping a day earlier, and Colorado's offense showed little pop in his absence. Left-hander Javier Lopez got the pinch-hitting Gonzalez to ground out for the second out of the ninth.

Bumgarner had walked four batters four times previously, twice this season. Guillermo Mota, Jose Mijares and Santiago Casilla combined for 2 1-3 innings of hitless relief.

NOTES: Nady returned to left field for the first time since he injured his left hamstring running for a ball in the gap against Arizona on Sept. 5. He finished 0 for 3. ... Rockies LHP Jorge De La Rosa will start against the Giants on Thursday in his first major league appearance since Tommy John surgery last year, manager Jim Tracy said. LHP Drew Pomeranz's start has been pushed back to Friday against Arizona, and Alex White will move to the bullpen for now. ... Giants OF Gregor Blanco sat out with a sore left shoulder. He is day to day. ... The Giants send Tim Lincecum (9-14, 5.09 ERA) to the mound against Rockies LHP Jeff Francis (5-5, 5.68) on Tuesday.