CHICAGO (AP) -- The Houston Astros used power hitting and precision execution to turn an early deficit into an exciting victory.
Ronny Cedeno's squeeze bunt scored Justin Maxwell with the tiebreaking run in the ninth inning to lead Houston over the Chicago Cubs 4-3 on Saturday after J.D. Martinez hit a three-run homer in the sixth.
''In order to play these types of close games, you have to play good baseball,'' Astros manager Bo Porter said. ''What I love about our ballclub is even though we make some mistakes, they don't hang their head. They keep battling, they keep fighting and we find a way to either get ourselves back into the game or make it a ballgame every night.''
Martinez did just that by tying the score with a long home run after Jose Altuve and Chris Carter singled.
''Altuve and Carter were able to get on and without them getting on with two outs, the game is not the same,'' Martinez said. ''It feels good just to tie the game up and give our team a chance.''
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.
''Quality pitch after quality pitch, I'll tell you what I like, that his facial expression, his emotion, it never changed,'' Porter said.
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.
''I know I had tagged the base before his glove tagged my hands,'' Soriano said. ''I know my lead at second base. It doesn't matter how good of a move the pitcher has, I know my lead and I know I can get back. It doesn't matter if he has a good move.''
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.
''Soriano is safe at second base, so there is a run,'' Sveum said. ''It's a broken record. We just can't seem to get that hit to break the game open in those situations. We get guys on and we just can't get them in.''
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 Altuve and Carter, Martinez tied the game with a long home run that cleared the left-field bleachers on its way to Waveland Avenue.
''Out of the park, literally out of the park, that was my only one,'' Martinez said. ''This is really the only park you can do it. Everywhere else you've got to hit it 900 feet.''
Wood had given up just two hits heading into the sixth and looked primed to earn his first victory in his last four starts.
''Really, it just falls back on me not being able to execute the pitches at that point,'' Wood said. ''I missed bad (on the home run pitch). It was supposed to be back door and it ended up coming all the way across the plate and that just can't happen.''
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).