Edwin Jackson allowed a lone run over six innings and has put together his first two-game winning streak of the season.
Jackson (3-8) allowed five hits and struck out seven. He had not won back-to-back games since the final month of the 2012 season.
Kevin Gregg worked a 1-2-3 ninth for his eighth save.
Daniel Murphy drove in two of the New York runs, but the Mets lost for the ninth time in 11 games.
Shaun Marcum (0-8) gave up all six Chicago runs on seven hits in 5 2/3 innings. He is the first New York pitcher in 15 years to lose his first eight decisions of the season.
Millions of Getty images now available for free via embed tool
Aaron Carter is still in love with Hilary Duff