PITTSBURGH -- Gerrit Cole pointed a finger after losing his third straight start -- at himself.
John Buck's two-run single capped a three-run first inning against Cole, and Dillon Gee pitched another gem against the Pirates as the New York Mets beat Pittsburgh 4-2 on Sunday.
Cole (4-3) has lost three in a row since becoming the first Pirates pitcher since Nick Maddox in 1907 to win the first four starts of his career.
"I didn't come out ready to pitch, and that inexcusable," Cole said. "It's just indefensible. I didn't give our team a very good chance to win. I put us in position where I had to scratch and claw and so did the rest of the team."
Cole surrendered three runs and six hits in five innings with two walks and five strikeouts. He started in place of All-Star left-hander Jeff Locke, who was scratched from this start on Saturday because of lower back tightness.
After losing Tuesday to Oakland, Cole wasn't expected to pitch again until after the All-Star break. However, he learned Friday he would likely start Sunday.
"I had plenty of time to prepare," Cole said. "No excuse."
Gee also didn't make any excuses despite pitching with sore feet.
The right-hander developed blisters on the soles of his feet during an 87-degree afternoon. It was so warm that the dirt on the mound baked in the sun.
However, Gee overcame the blisters and prevented the Pirates from sweeping the three-game series before the break.
Gee (7-7) allowed just one unearned run in 6 2/3 innings to the Pirates (56-37), who entered the day tied with St. Louis for the best record in the major leagues and the National League Central lead.
Gee is 3-0 with a 1.38 ERA in five career starts against Pittsburgh. He scattered five hits, struck out two and walked one.
"It's just sometimes this is the way it works out," Gee said of his success against the Pirates. "They're a really good team. I was just trying to throw strikes with all my pitches and just keep them off balance, and it worked out."
Bobby Parnell earned his 17th save in 20 opportunities with a scoreless ninth despite giving up back-to-back singles to Clint Barmes and pinch-hitter Russell Martin with one out. He got Jordy Mercer to fly out to end the game.
"We continue to fight until the final out," Pittsburgh manager Clint Hurdle said. "Sometimes I'd like to see us hit the 'go' button a little earlier in the game, but we always fight."
Starling Marte had two hits for the Pirates, whose three-game winning streak was snapped.
Buck, Eric Young Jr. and Marlon Byrd each had three hits for New York, which finished a 6-3 road trip. The Mets will host the All-Star game on Tuesday night at Citi Field.
The Mets took a 3-0 lead in the first inning. Byrd bounced a run-scoring, ground-rule double into the left-field seats, and Buck lined a two-run single to right.
"It's the growing pains of a young pitcher," Hurdle said of Cole's rocky first inning. "His command wasn't good and the changeup didn't come into play until the 35th pitch of the game even though it had been a good pitch for him in his previous outing."
Marte also bounced an RBI double into the seats in the third inning to draw the Pirates within 3-1.
Daniel Murphy tripled in a run in the seventh to restore the Mets' three-run lead.
Pittsburgh put runners on second and third with none out in the eighth on a single by Mercer and a double by Andrew McCutchen, but the Pirates scored only one run when Jose Tabata grounded out against LaTroy Hawkins.
"We had chances late in the game but Hawkins is a veteran eighth-inning guy who did his job, and Parnell is a tough guy to square up," Hurdle said. "They held us off."
NOTES: Pittsburgh RHP Mark Melancon was added as an injury replacement to the NL roster for Tuesday night's All-Star game at Citi Field in New York. That gives the Pirates a five-man All-Star contingent, their largest since 1972. Melancon joins Locke, RHP Jason Grilli, 3B Pedro Alvarez and McCutchen. ... Locke said he expects to make his next start July 21 at Cincinnati. . Collins said the blister on RHP Matt Harvey's right index finger has healed and he will be able to pitch in the All-Star game. Harvey is a prime contender to be the NL's starting pitcher despite being scratched from his scheduled start Saturday against the Pirates because of the blister and to limit his innings this season.