Updated

Troy Tulowitzki homered, Seth Smith tripled twice and the Colorado Rockies rallied to beat the streaking Arizona Diamondbacks 8-3 on Tuesday night.

Jordan Pacheco and Carlos Gonzalez had two hits each for Colorado, which beat Arizona for just the fifth time in 17 games.

Aaron Hill and Justin Upton had two hits each for the Diamondbacks, who had won 12 of their last 13 to take a seven-game lead in the NL West.

Arizona led 3-1 and appeared headed to its fourth straight win when the Rockies rallied for seven runs with two outs in the eighth. With Dexter Fowler on first, Mark Ellis singled to left and Carlos Gonzalez knocked in a run with a single to center off reliever David Hernandez (3-3).

Tulowitzki followed with his 30th homer to center to make it 5-3.

Hernandez gave up a single to Ty Wigginton before Joe Patterson came on, and Smith greeted him with an RBI triple that made it 6-3. After Wilin Rosario walked, Pacheco followed with a run-scoring single.

Sam Demel relieved Patterson and hit Kevin Kouzmanoff with a pitch to load the bases and then walked Fowler to make it 8-3.

Matt Belisle (10-4) got the win in relief.

Colorado's rally spoiled a solid outing by Arizona starter Josh Collmenter. The right-hander gave up one run on five hits and struck out four in 6 1-3 innings.

Arizona broke a 1-all tie in the seventh. Paul Goldschmidt led off with a double, moved to third on a passed ball and scored on Gerardo Parra's single to left.

The Diamondbacks made it 3-1 when Hill scored from third on a throwing error by third baseman Pacheco in the eighth.

The Diamondbacks took a 1-0 lead in the first when Hill and Upton hit consecutive one-out singles to put runners at the corners and Montero followed with an RBI grounder.

The Rockies tied it in the fifth when Smith led off with a triple to center and scored on Pacheco's grounder to third.

Colorado starter Jason Hammel went seven innings, allowing two runs, one earned, on six hits and struck out six.

NOTES: Hernandez was ejected from the game by home plate umpire Todd Tichenor as he was leaving the field in the eighth. ... Rockies 1B Todd Helton didn't play for the third straight day due to back stiffness. ... Rockies OF Ryan Spilborghs (right foot) will likely not play the rest of the season. ... The Rockies promoted Pacheco and right-hander Jim Miller from Triple-A Colorado Springs, and brought up catcher Wilin Rosario from Double-A Tulsa before the game. They placed INF Jonathan Herrera (right index finger) on the 60-day DL. ... Arizona lefty Joe Saunders will face Rockies righty Kevin Millwood in the series finale Wednesday night.