NEW YORK (AP) Matt Harvey pitched four-hit ball for eight innings, Ruben Tejada had a go-ahead single in the sixth and the New York Mets beat the Colorado Rockies for the eighth straight time at Citi Field, 4-0 on Tuesday night.

Juan Lagares had a two-run double in the eighth to help the Mets improve to 40-18 at home, matching last season's win total when they lost 41 at Citi Field.

Harvey (11-7) was dominant for a fourth straight start. He walked none for the third straight outing and struck out four, pitching to contact rather than overpowering the Rockies. He was lifted for pinch-hitter Curtis Granderson with the bases loaded in the eighth.

More from FoxSports

Granderson got a gift RBI from Boone Logan for the second straight night. He was hit by a pitch with the bases loaded Monday. This time Logan walked Granderson, who did not start against Chris Rusin (3-5), a lefty.

Lagares, who has lost most of his playing time since the arrival of Yoenis Cespedes, followed with the two-run double.

Eric O'Flaherty gave up a double to Jose Reyes in the ninth, but finished the five-hitter for the NL East leader's ninth win in 11 games.

Rusin (3-5) put men on base in four of the first five innings but New York was hitless in seven at-bats with runners in scoring position.

In the sixth, Michael Cuddyer singled with one out. An out later, Travis d'Arnaud had an infield hit. Then Tejada, a right-handed batter, grounded an outside pitch through the hole between first and second with second baseman DJ LeMahieu shading up the middle to give the Mets the lead.

What started as a wet, dreary day turned into dry night - a rare bit of luck for the Rockies, who have been besieged by rain this season. They have endured over 22 hours of weather delays at Coors Field and had four games postponed. A July game against the Padres was stopped by rain - a first in San Diego since 2006 - and they waited out an 1-hour, 23-minute delay at the Dodgers.

Colorado might have preferred a rainout against Harvey.

The right-hander had perhaps his most dominant outing since returning this season from Tommy John surgery. He allowed only three infield singles until Ben Paulsen doubled down the right field line in the seventh. Paulsen was doubled off second when LeMahieu hit a soft liner to second base.

Harvey had his second straight scoreless outing and has allowed just three runs over his last four starts.

Cuddyer had two hits and a stolen base against the team he played for the past three years. He turned down the Rockies' one-year offer this winter to sign with New York for two years.

TRAINER'S ROOM

Rockies: RHP Chad Bettis (elbow inflammation) threw a three-inning simulated game, about 15 pitches per inning. ''We're encouraged,'' manager Walt Weiss said. Bettis is scheduled to make a rehab start Saturday for Double-A New Britain.

Mets: 1B Lucas Duda was out of the lineup because of a stiff back. Manager Terry Collins was planning on giving Duda a day off Tuesday or Wednesday with Colorado starting left-handers. ''I don't think it's too serious,'' Duda said. ... David Wright (spinal stenosis) played six innings at third base and singled in three at-bats in his second rehab game for Class-A St. Lucie.

UP NEXT

Colorado's Jorge De La Rosa and New York's Jacob deGrom have been on rolls since May 16, each going 7-2. But deGrom has the best ERA over that stretch at 1.56. De La Rosa's ERA is 3.99.