Kelly Johnson hit a two-run homer to back Joe Saunders' eight-inning gem and the Arizona Diamondbacks dropped Colorado farther back in the NL West with a 3-1 victory over the Rockies on Tuesday night.

The Rockies had a day off following Sunday's 11-inning loss to the Los Angeles Dodgers and were hoping to keep up in the division against the last-place Diamondbacks.

Other than pinch-hitter Ryan Spilborghs' run-scoring single in the eighth, Colorado couldn't get much off Saunders (3-6) to drop 2½ games behind first-place San Francisco.

Johnson had the big blow, hitting his two-run homer off Jorge De La Rosa (8-5) in the third and Saunders did the rest, holding the Rockies to a run and six hits. Juan Gutierrez closed out the ninth for his 11th save.

The only drawback for the Diamondbacks was breaking the all-time season strikeout record. Arizona whiffed six times on the night to reach 1,404 in 150 games, blowing past the record of 1,399 set by Milwaukee in 2001.

Colorado has gone on what's become a now-predictable late-season run again this season, winning 13 of 16 — 10 in a row at one point — to go from 7½ games behind to within sight of the NL West lead.

One inning cost them a chance to keep up with San Francisco, which beat the Cubs 1-0.

It came with two outs in the third, when Stephen Drew singled and Ryan Roberts followed with a run-scoring single. Drew had barely reached the bench when Johnson hit an inside-out, two-run homer to left on the next pitch for his 22nd of the season.

De La Rosa allowed just one hit over the next four innings and was lifted for a pinch-hitter in the eighth after giving up three runs and six hits.

Not bad, just not good enough against Saunders in one of his few quality starts with Arizona.

The main cog in the trade for Dan Haren with the Los Angeles Angels, the left-hander has mostly struggled since the deadline deal. He's won just two of 10 starts with a 4.88 ERA and had given up seven runs — four earned — in each of his past two outings.

Saunders looked good against the heavy-hitting Rockies, though, erasing a baserunner in the second inning with a double play, then getting a lift from Drew's diving catch on De La Rosa's liner to short in the third.

The Rockies got the run in the eighth when Miguel Olivo led off with a double and scored on Spilborgh's single, but Saunders got a deep fly out and two strikeouts to end the inning. He struck out seven.

Notes: Rockies 2B Eric Young Jr. was held out of the lineup and could be used sparingly in the three-game series due to lingering soreness in his right shin. Young missed 69 games earlier this season with a stress fracture in his right fibula and was limited to pinch-hitting duties Sunday against the Dodgers. ... De La Rosa had won four straight starts against Arizona.