Matt Garza pitched into the ninth inning, and Anthony Rizzo hit his first home run since May 18 to lead the Cubs over Houston 3-1 Friday in Chicago after a rain delay that lasted 3 hours, 18 minutes.
Darwin Barney and Scott Hairston also homered for the Cubs, who had lost four of five. Barney was a triple short of the cycle.
The subject of trade speculation, Garza (2-1) allowed four hits and struck out eight for his first win since beating Arizona on May 31. The right-hander walked Jose Altuve to begin the ninth and was replaced by Kevin Gregg, who earned his 11th save in 11 tries.
Chris Carter broke up Garza’s shutout bid with his 15th homer in the seventh.
In his last start, Garza threw seven scoreless innings Sunday in a no-decision against the Mets.
Dallas Keuchel (4-4) gave up three runs and nine hits in six innings. Houston had won six of eight.
White Sox 9, Royals 1: Hector Santiago shut down the Royals’ punchless offense for a career-best eight innings, and the White Sox roughed up Kansas City starter Jeremy Guthrie in a rout in Kansas City, Mo.
Dayan Viciedo hit a three-run homer, and Alejandro de Aza added a two-run shot for the White Sox, who snapped a three-game skid with their best offensive output in nearly 2 weeks.
They scored twice in the first inning and five times in the third, when they chased Guthrie (7-5) from the game.
Santiago (3-5) gave up just three hits and a walk, and Eric Hosmer’s homer in the sixth represented the only run Santiago has allowed to the Royals in 19 1/3 career innings.
Rangers 6, Cardinals 4: Nelson Cruz snapped a ninth-inning tie with a two-run single through a drawn-in infield, and Texas beat the Cardinals in St. Louis in the opener of a series between 2011 World Series opponents.
Derek Holland was strong at the end of a seven-inning stint after a shaky start, Neal Cotts (4-1) escaped a bases-loaded jam in the eighth when Jon Jay tapped out on a full-count pitch, and Joe Nathan finished for his 23rd save in 24 chances. All of Cotts’ decisions have come this month.
Left fielder David Murphy robbed Carlos Beltran of an extra-base hit and saved a run with a running catch at the wall in left-center to end it.