Troy Tulowitzki turned in a defensive gem one inning, then flashed his prodigious power the next.

Quite a display of all-around ability.

Nothing new, his Rockies teammates said.

Tulowitzki homered and drove in three runs, Carlos Gonzalez also had three RBIs and Colorado took advantage of a struggling New York Mets bullpen in a 7-6 victory Monday night.

"Every day these guys do something that you're just like, wow!" first baseman Ty Wigginton said. "They're definitely special and the Rockies have a lot of reasons to be excited about them."

A Gold Glove winner last year, Tulowitzki made a terrific jump throw from shortstop to preserve a seventh-inning tie.

Moments later, his eigth-inning homer gave the Rockies a three-run lead.

"I'm ashamed to say those things don't surprise me anymore because he does it every day — and Carlos, too," Colorado pitcher Jason Hammel said. "They're two very big factors on this team."

Seth Smith reached base four times, including on a triple and a double. The Rockies improved to 7-2, with the only two losses coming in extra innings, to match the best nine-game start in franchise history.

Hammel pitched six respectable innings and Colorado took the opener of a four-game series, winning its third straight road game. The Rockies are 4-1 away from Coors Field after going 31-50 on the road last year.

The NL West leaders even found a way to win in New York. They are 5-23 on the road against the Mets since 2003, dropping eight consecutive series.

"Our history here is not very good," Hammel said. "It's nice to get one finally."

David Wright hit his second homer and Willie Harris had a two-run double for New York, which has lost four of five following a three-game winning streak. Jose Reyes tripled twice for the fifth time in his career and struggling starter Mike Pelfrey threw 113 pitches in 5 1-3 innings — though he did leave with a 4-2 lead.

"Everybody is as frustrated in this room as I am, but we've been in every single game but one" Mets manager Terry Collins said. "The fight is still there, but we've got to stop making mistakes."

Trailing by three, the Mets mounted a rally in the eighth. Wright led off with a homer against Rafael Betancourt and Carlos Beltran doubled. A run-scoring single by Ike Davis cut it to 7-6, but Betancourt retired the next three batters.

"He did a good job recovering," Tulowitzki said.

Huston Street worked a perfect ninth for his fifth save in five chances. Matt Belisle (2-0) got the final two outs in the seventh, with some help from Tulowitzki.

Reyes tripled with two outs and Daniel Murphy hit a grounder toward the hole at shortstop. Tulowitzki fielded the ball on his backhand and jumped, twisting his body in the air to make a strong, accurate throw to first for the third out.

"It's weird. It just kind of happens when you've played this game for a long time," said Tulowitzki, who signed a contract in the offseason that guarantees the All-Star shortstop $157.75 million through 2020. "It's a big momentum shift and it definitely played a big part."

Wigginton had another description.

"Unbelievable," he said. "I was thinking as soon as he threw it I was going to have to dig it. That ball still had something on it. It wasn't like it just floated over there like you see a lot of guys. I mean, it was impressive."

Dexter Fowler singled off Bobby Parnell (0-1) to open the eighth and moved to third on a sacrifice and a wild pitch. Gonzalez hit a comebacker and Parnell had a good chance to get Fowler at the plate, but he threw over the head of catcher Josh Thole.

"I rushed it and I threw it to the backstop," Parnell said. "I knew Fowler was a good runner, so I tried to get rid of it as fast as I could and executed poorly."

Gonzalez was credited with an RBI on the fielder's choice and he went to second on the error. Tulowitzki followed with a loud shot to left for his fourth homer and a 7-4 lead.

"It wasn't a composure thing. I just made a bad pitch," Parnell said.

It was the second time in the game that a Mets reliever threw high to home plate on a key play.

Ryota Igarashi, just called up from Triple-A Buffalo, had a chance for an inning-ending double play in the sixth, but he made a wayward throw. Gonzalez followed with a two-run single, breaking his bat on a two-strike pitch, to tie it at 4.

NOTES: Gonzalez was back in left field after not starting Sunday in Pittsburgh because of flulike symptoms. He threw out Angel Pagan trying to stretch a sixth-inning single. ... Wigginton started at 1B in place of Todd Helton, sidelined by a stiff lower back. Helton is 6 for 10 with a homer and four walks against Pelfrey, but manager Jim Tracy said Helton needed another day of rest even though he felt much better. Helton flied out with runners at the corners as a pinch hitter to end the seventh. ... Rockies ace Ubaldo Jimenez is slated to pitch an extended spring training game Wednesday in Arizona and then return to the Rockies' rotation next Monday. Jimenez is on the 15-day disabled list with a cut finger cuticle.