"We really wanted this one, and it stinks that we didn't get it," said Rockies reliever Adam Ottavino (1-3), who took the loss after giving up three hits in the 10th.
Chacin struck out five and held the Giants to one run and four hits in seven innings and has given up two earned runs on four hits over 22 innings in his last three starts against the Giants. The overall work of Chacin and lefty Jorge De La Rosa (16-6), who will face the Giants on Tuesday night, are positives for the Rockies (66-79).
Chacin lowered his road ERA for the season to 2.10 in 12 starts.
"He's putting together a great run, a great season," Rockies manager Walt Weiss said. "He did an outstanding job tonight. His two-seamer is real good. It's diving to the bottom of the zone, and his changeup has turned into a really good pitch for him. And he can throw a slider to righties. He's got all three working."
After losing three straight at San Diego, the Rockies made enough key mistakes to lose again. Both the Rockies, who fell behind the Padres and into fourth place in the National League West, and the Giants (65-79) have been mathematically eliminated from contention for the division crown.
Of the four losses on the current road trip, three were by one run and the other came after the Rockies blew a one-run lead in the seventh. The Rockies had solid starting pitching in each game.
"We've struggled to score on the road, and that's been the trend here," Weiss said. "It's something we've been trying to solve. When you score two runs, like we've done a handful of times on this trip, it's going to be tough to win games. You're asking a lot of your pitching staff."
In the eighth, rookie third baseman Nolan Arenado barehanded Angel Pagan's infield single off Matt Belisle but bounced his throw by first baseman Ryan Wheeler, who was subbing for the ill Todd Helton. Belt followed with a game-tying RBI double.
Giants starter Tim Lincecum was almost as on-target as Chacin in holding the Rockies to two runs on seven scattered hits in his eight innings.
In the top of the second, Arenado doubled and scored from second when there was no one to cover the plate when Giants catcher Buster Posey fielded Yorvit Torrealba's short ground ball and threw to first.
In the bottom of the second, Posey, playing despite a small fracture in the tip of his right ring finger, provided the only run off Chacin -- a homer to left field. It was his 15th homer this season.
The next hitter, Pablo Sandoval, ended up with a double when Rockies left fielder Corey Dickerson oddly pulled up on a ball he could have easily caught at the warning track. Dickerson said center fielder Charlie Blackmon was telling him he had room, but he thought Blackmon was calling for the ball. But Chacin ended that inning with no further damage. After the Sandoval hit, Chacin retired 12 of the next 13 batters.
Rockies second baseman DJ LeMahieu, who extended his hit streak to 11 games with a first-inning single, doubled in the third and scored on Troy Tulowitzki's single for a 2-1 lead.
Blackmon singled off Giants reliever Javier Lopez to open the Rockies' 10th, but Jonathan Herrera bunted into a double play -- even though replays showed that he reached first before the throw. Santiago Casilla (6-2) finished the inning to earn the win.
One-out singles by Pagan and Marco Scutaro in the bottom of the 10th set up Belt's game-winner.