Garland (6-10) avoided a big inning in 106 pitches, did not walk a batter and notched two strikeouts in his best performance this season. He stopped a personal three-start losing streak.
One of two hits by Chad Tracy was a two-run, fifth-inning double.
New York's Jeff Francoeur had two hits, including a solo homer in the fifth and Alex Cora had one RBI for the Mets, who have lost three of four.
Losing pitcher Mike Pelfrey (8-7) surrendered three runs and five hits in five innings with three walks and six strikeouts.