CHICAGO — Matt Carpenter and Matt Holliday homered Tuesday night to back Adam Wainwright, and the St. Louis Cardinals beat the Chicago Cubs, 4-3.

The Cardinals won their second straight game after going 0-5 on their first winless homestand of at least two series since 1983.

Carpenter and Holliday connected against Jason Hammel (7-3) in a three-run third inning that made it 4-1. Wainwright (6-4) pitched into the seventh and improved to 10-1 in 21 games – 16 starts – at Wrigley Field.

The Cardinals put themselves in position to sweep their first trip to Chicago since last year’s NL division series, though it won’t be easy with the major league-leading Cubs sending reigning NL Cy Young Award winner Jake Arrieta to the mound.

BRAVES 3, MARLINS 2: Jace Peterson hit a game-tying two-run homer in the eighth inning and a go-ahead RBI single in the 10th to lift Atlanta at Miami.

Chris Withrow (2-0) got five outs to earn the win and Arodys Vizcaino picked up his eighth save in 10 chances for the Braves, who have won six straight.

GIANTS 15, PIRATES 4: Angel Pagan hit a grand slam during a seven-run fourth inning, and Johnny Cueto shut down Pittsburgh into the seventh for visiting San Francisco.

Conor Gillaspie also homered during the fourth among his four hits and Gregor Blanco scored three times for San Francisco, which won a night after having an eight-game winning streak snapped in Pittsburgh.

AMERICAN LEAGUE

INDIANS 6, RAYS 0: Corey Kluber threw a three-hitter and Cleveland won at home for its fifth straight win.

Kluber (7-7) took a one-hitter into the ninth inning before Brad Miller and Evan Longoria singled with one out. Kluber retired the final two hitters for his third career shutout.

TIGERS 4, MARINERS 2: Mike Aviles drove in the tiebreaking run with an infield single in the eighth as Detroit won at home.

Kyle Seager hit a two-run homer off Justin Verlander in the sixth to give the Mariners a 2-0 lead, but Detroit scored a run in the sixth and another in the seventh to tie it. With the bases loaded in the eighth, Aviles tapped a dribbler up the first-base line.

ASTROS 3, ANGELS 2: Carlos Correa hit a two-run single to right-center field with no outs in the ninth inning and Houston rallied at home.

INTERLEAGUE

DIAMONDBACKS 4, BLUE JAYS 2: Yasmany Tomas and Peter O’Brien homered, Patrick Corbin threw 61/3 solid innings, and Arizona won at Toronto for its fifth straight victory.

METS 2, ROYALS 1: Yoenis Cespedes hit his 18th home run and Asdrubal Cabrera also connected at home for New York, which had lost three straight and 6 of 8.

ROCKIES 8, YANKEES 4: Charlie Blackmon led off the game with a home run and later connected for another solo drive, Nolan Arenado hit his major league-leading 21st homer and Colorado won at New York.

REDS 8, RANGERS 2: Jay Bruce hit a three-run homer, Zack Cozart homered along with a two-run triple and Cincinnati won at Arlington, Texas, ending the Rangers’ season-best winning streak at seven games.

PADRES 10, ORIOLES 7: Matt Kemp doubled to spark a four-run seventh inning, and San Diego overcame two home runs and five RBI by Pedro Alvarez at Baltimore.

TWINS 14, PHILLIES 10: Kurt Suzuki went 4 for 5 with a career-high six RBI, including a two-run homer, to lead Minnesota to a victory at Minneapolis that handed Philadelphia its eighth straight defeat.