Cubs 5, Mets 4: Starlin Castro went 3-for-4 with three RBIs to atone for an early error as host Chicago rallied past New York for the second straight night.

Castro's two-run single highlighted a three-run fifth inning that capped the Cubs' comeback from an early 3-0 deficit. The rally made a winner of Edwin Jackson (4-5), who allowed four runs - only one earned - while giving up five hits and five walks over five innings.

Daniel Murphy went 3-for-5, Lucas Duda knocked in two runs and Ruben Tejada homered for the Mets. Dana Eveland (0-1) was charged with the loss, allowing one run on two hits while recording just one out in the fifth.

Six Cubs relievers combined for four innings of scoreless work, allowing just two hits and two walks, with Hector Rondon pitching the ninth for his seventh save. The Mets left the bases loaded in the fifth and sixth, going 1-for-8 with runners in scoring position and stranding 10 men.

Castro's misplay extended the first inning and allowed the first run of the night, and Duda followed with a two-run double for a 3-0 lead. The Cubs got two back in the bottom of the inning on Castro's RBI single and Nate Schierholtz's run-scoring groundout, and they tied it on Castro's two-run single in the fifth before Jeurys Familia uncorked a wild pitch that allowed Anthony Rizzo to score the go-ahead run.

GAME NOTEBOOK: Cubs manager Rick Renteria earned his fourth ejection of the season for arguing with home plate umpire Todd Tichenor in the top of the third. … Mets LF Curtis Granderson went 2-for-5 with a run scored and has reached base in 17 straight games. … New York starter Daisuke Matsuzaka allowed four runs on four hits and walked five in 4 1/3 innings in his second start of the season.