Webb (9-0) equaled the Diamondbacks' record established by Curt Schilling, who won nine games in a row in 2002.
Chris Snyder hit a three-run homer in the fifth to give Arizona a 5-0 lead. After Colorado closed within 5-3, the Diamondbacks broke the game open with a three-run eighth that featured a two-run triple by Justin Upton.
The Rockies scored twice in the ninth and brought the tying run to the plate, but Brandon Lyon retired three in a row for his 12th save.
Webb allowed three runs on seven hits in 7 1/3 innings. He walked one and struck out eight.
The loss went to Aaron Cook (6-2), who was touched for 10 hits and five runs in five innings. The Rockies have lost five in a row.
Arizona did not allow an unearned run despite committing four errors.
The Diamondbacks, who were swept by Colorado in the National League Championship Series last season, have won eight of nine meetings between the two clubs this year.