CHICAGO -- Ronny Cedeno's perfectly placed sacrifice bunt brought home Justin Maxwell with a ninth-inning go-ahead run as the Houston Astros topped the Chicago Cubs 4-3 on Saturday.
The Astros' shortstop tapped a bunt several feet left of the first-base line while Cubs reliever Kevin Gregg chased it. Gregg had no play at the plate after Maxwell had a big jump off third.
The run was only the fourth allowed by Gregg (2-1) this season.
Houston evened the three-game series at one win apiece heading into Sunday's finale.
Reliever Jose Cisnero (2-0) worked two innings for the win while Jose Veras earned his 15th save.
The Cubs threatened to break a 3-3 tie with the bases loaded and two outs in the eighth, but Cisnero got Darwin Barney to pop up to center.
Houston left fielder J.D. Martinez clubbed a three-run home run in the sixth to force a 3-3 deadlock.
Jose Altuve and Maxwell each had two hits for the Astros. Welington Castillo was 2-for-3 for Chicago.
Cubs starter Travis Wood worked into the seventh before departing. The left-hander gave up three earned runs on five hits, walked one and struck 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.
The Cubs broke a scoreless tie in the third when Valbuena singled home Castillo and Barney with one out for a 2-0 lead.
Castillo had reached on a leadoff single and Barney 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 to Starlin Castro and a walk to Nate Schierholtz. But Alfonso 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 homer in two days without runners on base.
The Astros tied the game at 3-3 in the sixth with Martinez's first-pitch home run off Wood. Altuve and Chris Carter each reached base on two-out singles and Martinez, Houston's cleanup batter, sent a shot outside the park onto Waveland Avenue for his seventh homer of the season.
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. 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. ... 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. ... 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 Major League games but none against the Cubs. He has now played against every club in the majors.