Belt cracked a solo home run and drove in a run in the four-run San Francisco fourth inning, extending the Giants' lead in the NL West to six games over Los Angeles.
Madison Bumgarner started for the Giants and smacked a three-run home run, but the win went to George Kontos (2-1) in relief. Kontos struck out the final two batters in the fifth and Javier Lopez came on in the ninth to make the save.
Carlos Torres (4-2) took the loss for Colorado after allowing four runs on four hits over two innings in relief.
Tyler Colvin led Colorado with a pinch-hit, two-run homer in the ninth. The Rockies lost for the sixth time in seven games.
The Rockies held a 4-0 lead after three innings but the Giants tied it with four runs in the fourth, including three on Bumgarner's homer. The Giants then scored five runs over the next three innings to take a wide enough lead to withstand a late Rockies rally.