For some reason, the lowest-scoring team in the majors adds up to big trouble for Matt Harvey.
The last-place Marlins once again stalled the NL's starting pitcher in the All-Star game, and Miami beat the New York Mets 3-0 Thursday.
Harvey (8-3) allowed three runs and five hits in 5 2-3 innings and struck out eight as the New York Mets lost 3-0 to the Marlins.
"My job is to put up zeros regardless of what else is going on," Harvey said. "I only have one concentration, and that's my job at hand. I'm going to say that until I'm blue in the face. My job is to put up zeros, and obviously I didn't do that today. I'm not happy about it."
It was the first time the Mets had been shut out since May 25 against Atlanta.
"He deserves a better fate than what he has had," Mets manager Terry Collins said. "He has pitched great. We just don't score many runs."
Harvey's three shortest outings this season have come at Marlins Park. He is 0-1 with a 3.52 ERA in four starts against the Marlins this season while going 8-2 with a 1.97 ERA against the rest of the majors.
"It's not like I take this start or this team any different than against any other team," Harvey said. "It's just been that team this year that happens to squeeze out some runs."
Tom Koehler (3-6) pitched six effective innings as he gave up five hits, walked five and struck out five.
"The key is really not to think about it too much," Koehler said. "I was facing the Mets. You put up zeros against anybody who's pitching, your team tends to be in pretty good shape."
Logan Morrison's two-out single broke a scoreless tie in the sixth. Donovan Solano added a two-run single later in the inning.
"He's got good stuff. Right now he's one of the best pitchers in baseball and so I think the whole team feels good because he lost today," Solano said.
The Marlins have the worst record in the NL.
"I don't know that I can explain it," Marlins manager Mike Redmond said. "For whatever reason we really lock it in against him and we've just been able to kind of rise to the occasion."
Reliever A.J. Ramos pitched two innings and Steve Cishek worked the ninth for his 23rd save in 25 chances.
New York went 0 for 7 with runners in scoring position. They left a runner in scoring position in five of the first six innings and stranded 11 overall.
"There's no secret," Collins said. "If we knew what it was, we'd fix it. Guys aren't driving in runs. There's nothing wrong with the approach. We're not getting good swings at the pitches we can hit and we're fouling them off. Therefore we're not driving them in."
Ike Davis popped out with the bases loaded to end the third. Juan Lagares tripled with one out in the fourth, but the Mets could not drive him in, and Jake Marisnick made a diving catch in center field and threw to first to double up David Wright to end the fifth.
"That play Jake made in center field is a game-changer," Koehler said. "That ball falls and get by him we're talking two runs there and another guy in scoring position. That play right there really changed the game."
Meanwhile, the Marlins managed just one hit through five innings, a single by Koehler in the third after Harvey struck out four in a row.
"Things were fine until the sixth inning," Harvey said.
Juan Pierre pinch-hit for Koehler and singled to lead off the sixth, making him 7 for 15 lifetime against Harvey. Christian Yelich followed with a single that put runners at the corners with no outs.
Harvey retired the next two batters, but Morrison singled for a 1-0 lead. After Harvey hit Ed Lucas with a pitch to load the bases, Solano singled to chase Harvey.
Justin Turner and Lagares each had two hits for the Mets.