Kyle Schwarber became the first major leaguer to reach 30 homers this season with a two-run shot in the seventh inning that sent the Philadelphia Phillies to a 5-4 win over the New York Mets.