Descalso had a run-scoring groundout in the fourth and added a two-run homer in the sixth off Petit (1-1). The homer off a 79 mph changeup from Petit put Colorado ahead 4-2, marking the first time the Giants trailed by more than a run since May 9.
''I thought he threw well. Did a nice job,'' Bochy said of his spot starter. ''That was going to be it for him and he made a mistake there his last hitter. That was a gutty effort. He gave us a chance to win.''
San Francisco, which won the opener 10-8 behind Brandon Crawford's three RBIs, was seeking its first nine-game streak since winning 10 in a row in May 2004.
''It was a good run. You hate for it to end,'' Bochy said. ''The guys have been playing well. Made a couple of mistakes tonight but it's a good run, they've been playing good ball.''
David Hale (1-0), acquired from Atlanta in the offseason but plagued by a left oblique strain in spring training, allowed three runs - two earned - over 6 2/3 innings in his Rockies debut.
John Axford pitched the ninth for his sixth save in six chances. Gregor Blanco singled and stole second, but was thrown out by center fielder Charlie Blackmon when he failed to slide while trying to advance on Angel Pagan's fly out. Hunter Pence grounded into a fielder's choice to end it.
Petit allowed four earned runs on seven hits over six innings.
After Crawford scored on a wild pitch in the second, Brandon Barnes tied it with an RBI single in the fourth and Descalso added a run-scoring groundout to give Colorado a 2-1 lead.
San Francisco tied it on Nori Aoki's single in the fifth but Casey McGehee was thrown out at the plate by right fielder Carlos Gonzalez trying to score from second. McGehee was ruled safe by home plate umpire Paul Nauert but the call was overturned after a video review.
''If I could have done anything different I would have gotten my foot down,'' McGehee said. ''You've got to give him a tip of the hat because he threw a one-hopper right on the money. Good play. Sometimes that replay can see a little too much.''
The Giants pulled to 4-3 in the seventh when Blanco scored from third on Gonzalez's throwing error. But the Rockies restored their two-run cushion on Ben Paulsen's RBI single off Jeremy Affeldt in the bottom half.
Showers pushed back the opener 2 hours, 15 minutes and the start of the nightcap - a makeup of an April 26 rainout - also was delayed, this time for 58 minutes by lightning and thunderstorms.
These were the seventh and eighth games this season that were delayed or postponed by rain at normally bone-dry Coors Field.
All 10 of the Giants' runs in the opener came with two outs.
''It's awesome,'' said right-hander Chris Heston (4-3), who picked up the win in the opener despite allowing eight hits, including three homers, and six earned runs over 5 2/3 innings. ''You think you're heading back out there and then they put a couple of more on the scoreboard for you. It's big.''
Colorado right-hander Jordan Lyles (2-5) got off to a strong start before a strained big left toe derailed his outing. He was charged with six earned runs on seven hits in four-plus innings.
Lefty Yohan Flande replaced Lyles after the Giants loaded the bases with nobody out in the fifth. Flande allowed four earned runs in two innings, including Crawford's two-run triple that made it 7-1.
Heston, who surrendered a solo homer to Ben Paulsen in the second, gave up a solo home run to Nick Hundley and a two-run shot to Charlie Blackmon in the fifth that pulled Colorado to 7-4.
''It's a battle anytime you have to pitch here,'' Heston said. ''It's a sparring match between two teams. You try to go as long as you can.''
Giants: San Francisco was encouraged by a pain-free outing from RHP Jake Peavy (strained back). He began a rehab assignment with Class A Advanced San Jose on Friday night, throwing 3 1/3 scoreless innings against Rancho Cucamonga.
Giants: RHP Tim Hudson (2-3, 4.01) closes out the four-game series at Colorado on Sunday.