Arizona reduced its magic number for its second National League West Division title in three years to three as it maintained a two-game lead over San Francisco, which posted an 11-8 victory at Houston.
Schilling (22-6) allowed three runs and nine hits over eight innings and lowered his ERA to 2.98. The righthander struck out eight and threw 117 pitches.
Closer Byung-Hyun Kim pitched a perfect ninth inning for his 18th save in 22 chances.
Arizona jumped on top in the second inning with two runs. Mark Grace led off with a single and Rockies starter Shawn Chacon (6-10) hit Matt Williams before the pair executed a double steal for their first stolen bases of the year.
Counsell followed by lining a double to right-center field to give the Diamondbacks the lead. He came around to score on a two-out wild pitch by Chacon.
Williams doubled in Reggie Sanders in the third for a 4-0 lead.
Colorado scored single runs in the fourth and sixth innings to cut its deficit in half. An RBI groundout by Jeff Cirillo in the fourth got the Rockies on the board and Cirillo added an RBI single in the sixth.
Todd Helton's 47th homer of the year, off Schilling with two outs in the eighth inning, cut the deficit to 4-3.