The Rockies snapped a three-game skid and in the process handed the defending World Series champs their fifth loss in a row.
Chacin (7-3) walked three and struck out three while throwing 95 pitches. He twice put two runners on in the same inning, but worked out of trouble to win his fourth straight decision. His three losses this season came in consecutive starts in May.
Colorado lost its shutout bid in the ninth when reliever Rex Brothers gave up a leadoff homer to Buster Posey, but Brothers eventually struck out the side in a non-save situation.
Barry Zito (4-6) took the loss, surrendering four runs on 10 hits in 5 1/3.