In the first inning and again in the fifth, Bumgarner (17-7) loaded the bases with no outs. He gave up two runs in each inning but kept the rallies from burgeoning into something bigger.
"You obviously want better," he said, "but when it's all said and done, you're able to go back on it and look, it's really not too bad for this ballpark, getting out of it with giving up a couple of runs. It could have been much worse."
In six innings, the Giants left-hander allowed nine hits and four runs -- his highest totals in a span of seven starts since July 31 in both categories. He walked one and tied his season low with three strikeouts, but Bumgarner evened his record at 5-5 in 12 starts at Coors Field, where his ERA is 4.21.
"Any time you get a win at Coors Field, that's gratifying in itself," Bumgarner said. "And also when you're not having maybe your best game and you still find a way to win, yeah, that's definitely a big plus for you and something you can feel good about."
Four San Francisco relievers combined to retire all nine batters they faced. Closer Santiago Casilla struck out two in the ninth inning for his 32nd save in 37 chances. He has retired 25 of his past 29 batters.
The game was tied at 2 when the Giants batted around in the fifth and erupted for five runs. With one out, seven consecutive batters reached base against starter Yohan Flande (3-2), Brooks Brown and Rex Brothers.
Third baseman Matt Duffy tripled home the first two runs in the inning. Manager Walt Weiss turned to Brown, hoping the right-hander's changeup or two-seam fastball could produce a double-play grounder with runners on first and third. However, Brown yielded a run-scoring single to right fielder Marlon Byrd, the only batter he faced. Byrd finished with four hits.
Brothers, a lefty, came on to face two left-handed hitters, and he stumbled. He walked first baseman Brandon Belt to load the bases. Shortstop Brandon Crawford followed with a two-run double, and on the play, Belt was thrown out at the plate.
After the Rockies loaded the bases with no outs in their half of the fifth, second baseman Cristhian Adames grounded a two-run single to left for his first RBIs in the majors. Third baseman Nolan Arenado then hit a comebacker to Bumgarner, who started a double play. Right fielder Carlos Gonzalez hit a hard line drive but right at Belt.
"It was really big that he got out of that inning only allowing two runs," catcher Buster Posey said. "He did a nice job of damage control in a ballpark where things can get out of control in a hurry."
The Giants cut Colorado's lead to 2-1 in the second on Belt's groundout after Posey led off with a double and moved to third on a single. Posey tied the game at 2 in the fourth when he led off with his 17th homer and No. 100 in his career. Posey went 30 games and 115 at-bats without hitting a home run, dating from Aug. 3 at Atlanta.
"It's special," Posey said. "If you had told me when I was kid that I'd have 100 home runs in the major leagues one day, it would probably put a pretty good smile on face."
In the first, Bumgarner gave up singles to shortstop Jose Reyes and Adames on his first three pitches and then issued a nine-pitch walk to third Arenado to load the bases.
Gonzalez grounded into a run-scoring force play, and first baseman Wilin Rosario hit a sacrifice fly before catcher Nick Hundley flied out.
"Nothing fell when we needed it to," Rockies center fielder Brandon Barnes said.
Hundley was diagnosed with a cervical strain after he left the game in the sixth inning, and he is listed day-to-day. He said the injury occurred on a swing during his at-bat in the fourth.
NOTES: Rockies C Dustin Garneau was 0-for-13 before his single in the sixth inning. ... Giants C Hector Sanchez sustained a mild mid-foot sprain and a left hamstring strain Saturday. He is on crutches and sidelined for the balance of the season. ... Giants OF Nori Aoki will fly to Pittsburgh on Tuesday and be re-evaluated there Wednesday by Dr. Michael Collins, a concussion specialist. Aoki sustained a concussion Aug. 9 and complained of concussion symptoms Saturday morning. ... San Francisco LHP Jeremy Affeldt (left knee subluxation) and RHP Matt Cain (right elbow nerve irritation) will be activated Tuesday. ... Giants C Jackson Williams, 29, had his contract selected from Double-A Richmond. To make room for him on the 40-man roster, C Andrew Susac (right wrist sprain) was placed on the 60-day disabled list. ... Rockies LF Corey Dickerson (right rib fracture) was scheduled to play nine innings for Triple-A Albuquerque and then fly to Arizona to be re-evaluated. Colorado begins a series Monday in Phoenix.