CHICAGO -- Ronny Cedeno's ninth-inning sacrifice bunt scored the winning run in Houston's 4-3 victory over the Chicago Cubs on Saturday, but the key at-bat actually came three innings earlier.
That's when Astros second baseman Jose Altuve outdueled Cubs starter Travis Wood and delivered a two-out single, igniting a rally capped by J.D. Martinez's game-tying, three-run home run.
"I think the biggest at-bat of the game was Jose Altuve taking a 2-0 pitch, taking the 3-1 pitch and forcing him to throw a stressful 3-2 pitch and then getting the base hit," Astros manager Bo Porter said.
Chris Carter followed with a hit, setting the stage for Martinez's first-pitch shot to left field and out of the park off Wood. It was Martinez's seventh homer of the season.
"Our guys put together three straight really good at-bats and allowed us to get back into the ballgame," Porter said.
Until that point, it was smooth sailing for Wood, who entered the sixth with a 3-0 lead.
"I didn't feel tired or anything. I was cruising, but I've got to bear down there with the tying run at the plate," Wood said. "I missed with a pitch and he hit it out. The relievers came in and did their job, and it falls back on me, not being able to execute the pitch at that point."
Neither starter figured in decisions. Wood worked into the seventh, giving up three earned runs on five hits, walking one and striking out five. Astros right-hander Bud Norris pitched six full innings and allowed six hits, two earned runs and three walks and struck out five.
Right-handed reliever Jose Cisnero (2-0) worked two innings for the win while Jose Veras earned his 15th save. Cubs right-hander Kevin Gregg (2-1) worked the ninth and took the loss, giving up only his fourth run of the season.
Houston pushed the winning run across in the ninth as Cedeno's perfectly placed sacrifice bunt brought home Justin Maxwell from third.
The Astros' shortstop tapped the ball several feet left of the first-base line while Gregg chased it. Having no play at the plate after Maxwell had a big jump off third, Gregg fired to first.
"(The bunt) was part of the plan, knowing we had good speed on the base paths. And Ronnie did a great job, Justin did a great job with his read," Porter said. "Just good execution all the way around."
The Cubs threatened to break a 3-3 tie in the eighth even after Alfonso Soriano was picked off second with one out. The Cubs went on to load the bases, but Cisnero got Darwin Barney to pop up to center.
"It's a broken record," Cubs manager Dale Sveum said. "We just can't seem to get that hit to bust the game open in those situations. We get guys on; we just can't get them in."
The Cubs broke a scoreless tie in the third when Luis Valbuena singled home Welington Castillo and Barney with one out for a 2-0 lead.
Castillo had reached on a leadoff single and Barney had advanced him with a fielder's choice grounder and error by the Astros' Matt Dominguez. Both moved up a base on an off-target pickoff throw to second from catcher Carlos Corporan.
After Valbuena's RBI single, Norris proceeded to load the bases with a single by Starlin Castro and a walk to Nate Schierholtz. But Soriano popped to first and Anthony Rizzo struck out swinging to end the inning.
Schierholtz made it 3-0 with a one-out solo home run to right in the fifth. It was his 10th homer of the year and the Cubs' fourth in two days without runners on base.
Wood left in the seventh after issuing a leadoff walk to Dominguez, who eventually reached third. But Dominguez never advanced after pinch hitter Marc Krauss grounded to first and Brandon Barnes popped to second.
NOTES: Elias Sports Bureau said the Cubs' 3-1 win Thursday was the first time in 98 years at Wrigley Field that both clubs combined to score at least four runs and all runs were on solo home runs. ... The Astros send RHP Jordan Lyles (4-0) against Cubs RHP Jeff Samardzija (4-7) in the finale of the three-game series and Cubs home stand. Lyles is 3-0 in his last seven starts. His last start, Tuesday against Milwaukee, was the seventh straight in which he had allowed two runs or fewer, the longest streak in the American League this year. Samardzija is third in the National League with 110 strikeouts heading into Sunday's start. He's also ninth in innings pitched (99.1) and seventh in road ERA (2.73). ... Schierholtz's 10 home runs are a career high. His previous best (nine) came in 2011 with the Giants. ... After Sunday's series finale, the Cubs will still have nine games remaining against American League teams, starting with a three-game series at Seattle (June 28-30). They have a makeup game at Chicago on July 8. ... Houston designated Triple-A Oklahoma RHP Ross Seaton for assignment on Friday to make room for Krauss on the 40-man roster. ... Until Friday, 1B Carlos Pena had played in 1,457 games but none against the Cubs. He has now played against every club in the majors.