Yoenis Cespedes and Travis d’Arnaud homered, Todd Frazier drove in three runs and the New York Mets beat the St. Louis Cardinals 6-2 Saturday. Jacob DeGrom pitched effectively into the sixth inning and the Mets, under new manager Mickey Callaway, opened at 2-0 for the first time since 2013. After batting cleanup on opening day, Mets leadoff hitter Asdrubal Cabrera doubled in the first on a full-count pitch from Michael Wacha. Cespedes walked and Jay Bruce grounded into a forceout. Frazier doubled into the left-field corner, with a hustling Bruce beating the throw without a slide. D’Arnaud homered in the fourth and Cespedes made it 4-1 with a drive in the fifth. Cabrera added an RBI double in the eighth. DeGrom (1-0) struck out five of the first nine Cardinals he faced. He fanned seven in 5 2/3 innings, allowing one run and four hits. Matt Carpenter homered for the St. Louis in the eighth. Jeurys Familia got the last four outs for his first save. Wacha (0-1) allowed four runs on five hits and two walks over 4 2/3 frames, walking two and hitting a batter. Jose Martinez had an RBI single for the Cardinals and is 5 for 7 this season. Down by three runs, St. Louis threatened with back-to-back singles to lead off the seventh. After Kolten Wong grounded out against Robert Gsellman, reliever Anthony Swarzak retired pinch-hitter Greg Garcia and Dexter Fowler to strand both runners. Frazier had a sacrifice fly in the seventh.