"Marco made it pretty easy for me," Belt said. "He did the hard part. He looks for his pitch and won't swing until he gets it."
Scutaro also doubled and drew a walk.
"That's what you love about him," manager Bruce Bochy said. "He wants to play and doesn't like days off. He was adamant about playing."
Moscoso has pitched two scoreless innings in each of his last three outings, but this was his first appearance since Sept. 2 at San Diego
"I'm able to handle my routine out of the bullpen," he said. "It's about staying consistent."
"We've played a lot of close games," Rockies manager Walt Weiss said. "Every time we come here, it's a war. It seems like every game here is like this. Sometimes you're going to lose close games."
Giants right-hander Yusmeiro Petit struck out seven in 5 2/3 innings in his first start since he almost threw a perfect game against Arizona before settling for a one-hitter. He gave up three runs and six hits with two walks.
"The Rockies came out singing and got their timing against me in the later innings," Petit said. "I've seen our club come back so I just wanted to keep it close."
Petit retired his first 11 batters before walking Corey Dickerson in the fourth. Dickerson raced over to third on Cuddyer's base hit and scored on Arenado's single, tying it at 1.
Colorado added two more in the sixth on RBI singles by Arenado and Charlie Culberson, making it 3-1.
Rockies starter Juan Nicasio was in line for the win before San Francisco rallied. He held the Giants to one run and five hits in five innings.
The Giants left the bases loaded twice, once with two outs in the second and once with one out in the fifth.
San Francisco pulled within one in the seventh, taking advantage of a bout of wildness from Josh Outman. The lefty walked the bases loaded with no outs, and Pence hit a sacrifice fly against Adam Ottavino.
The Giants had a chance for more, but Sandoval and Hector Sanchez grounded out to end the inning.
Giants LHP Jeremy Affeldt will be reinstated from the disabled list in time for Thursday's game in Los Angeles. ... RHP Matt Cain (8-9, 4.37 ERA) will start for the Giants in the series opener against the Dodgers on Thursday. He's 5-1 against them in his last 12 starts. ... Petit set down 38 of 39 batters before walking Dickerson. ... The Rockies will start RHP Tyler Chatwood (7-4, 3.17 ERA) in their series opener in Arizona on Thursday. ... Nicasio has allowed three earned runs in his last 22 innings against the Giants. ... Belisle needed 36 pitches to get through the eighth, the most by any Rockies reliever in an inning this season. ... The Giants left 13 runners on base. They've stranded 13 or more five times this year.