Ronny Cedeno's squeeze bunt scored Justin Maxwell with the tiebreaking run in the ninth inning to lead the Houston Astros over the Chicago Cubs 4-3 on Saturday.
J.D. Martinez tied the game with a three-run homer in the sixth for Houston.
Jose Cisnero (2-0) pitched two scoreless innings for the win, escaping a bases-loaded jam in the eighth. Jose Veras earned his 15th save in 18 chances.
Maxwell hit a leadoff double in the ninth against Kevin Gregg (2-1) and moved to third on Matt Dominguez's sacrifice. Cedeno followed with another sacrifice bunt, putting the Astros ahead.
Nate Schierholtz hit a solo homer in the fifth to give the Cubs a 3-0 lead. It was his 10th homer this season, setting a career high.
Alfonso Soriano reached scoring position in the bottom of the eighth with a double to left field but was called out by second base umpire David Rackley on a pickoff play that drew Chicago manager Dale Sveum out of the dugout for an argument.
Replays showed Soriano made it back to the bag before the tag. Ryan Sweeney then hit a single that would have given Soriano a great opportunity to score. Instead, the Cubs loaded the bases before Darwin Barney flied out to end the inning.
Chicago starter Travis Wood appeared to be in control after getting a pair of outs to start the sixth inning. But after hard-hit singles by Jose Altuve and Chris Carter, Martinez tied the game with a long home run that cleared the left-field bleachers on its way to Waveland Avenue.
Wood had given up just two hits heading into the sixth and looked primed to earn his first victory in his last four starts.
Luis Valbuena put the Cubs ahead with a two-run single in the third after a pair of Houston errors.
Barney hit a grounder to third that looked like a sure double play, but Dominguez threw high to second. Astros catcher Carlos Corporan compounded the mistake with an errant pickoff attempt that hit second base and ricocheted into shallow left field, allowing both runners to advance.
NOTES: The Cubs are 7-3 in interleague play with 10 games remaining. They haven't had a winning record against the American League since 2007 (8-4). ... Jeff Samardzija (4-7, 3.35 ERA) pitches Sunday for Chicago against Jordan Lyles (4-1, 3.22).