Jake Arrieta remained unbeaten on the season despite allowing as many as four runs for the first time in nearly a year and the Chicago Cubs beat the St. Louis Cardinals 9-8 on Wednesday.
Arrieta (9-0) joined the White Sox's Chris Sale as the only nine-game winners in the majors.
Arrieta allowed four runs in a regular-season game for the first time since June 16, 2015.
Stephen Piscotty, hitting .360 in May, had an RBI single in the first to give the Cardinals a 1-0 lead. It was the first run Arrieta had given up in the first inning of a regular-season game since May 29, 2015.
Randal Grichuk's solo homer in the second inning cut the Cubs' lead to 6-2 and was the first homer Arrieta had given up in 51 regular-season innings, which was the longest active streak in the majors.
The Cardinals made it 6-4 in the fourth on RBI hits by Matt Adams and Grichuk and they loaded the bases again in the fifth, but Cubs third baseman Tommy La Stella bailed out Arrieta with a diving stop on Grichuk's grounder and forced Yadier Molina at second.
Matt Holliday snapped a 3-for-39 slump with a three-run homer in the sixth to make it 9-7. Adams hit his second homer of the series in the seventh to cut it to a one-run deficit.
Kris Bryant hit a three-run homer and Jason Heyward and Ben Zobrist each drove in two for the Cubs.
Jon Lester (4-3, 2.60 ERA) will kick off a 10-game homestand Friday against the Philadelphia Phillies. Lester is 4-0 with a 1.76 ERA in six starts against the Phillies.
Mike Leake (3-3, 4.07 ERA) will make his 10th start of the season, starting a seven-game road trip at the Washington Nationals. Leake is 3-0 with a 0.86 ERA in his past three starts.
>>Kluber Outduels Quintana for Indians Win
Corey Kluber allowed two runs over 7 1/3 innings and the Cleveland Indians roughed up a top White Sox pitcher for the second straight day in a 4-3 win over Chicago on Wednesday.
After sending Chris Sale to his first loss after a 9-0 start, the Indians got three runs and five hits in six innings against Joel Quintana (5-4). Quintana's ERA, an AL-best 1.98 at the start of the day, rose to 2.22.
Before Tuesday, the White Sox had been 15-3 in games started by Sale and Quintana.
Cody Allen struck out two in a 1-2-3 ninth to remain perfect in 11 save chances.
Lonnie Chisenhall hit a two-run triple, Yan Gomes had an RBI triple and Juan Uribe had a sacrifice fly.
Melky Cabrera hit a two-run homer in the eighth inning, and Jose Abreu had three hits for the White Sox.
Chicago cut the gap in the sixth when Todd Frazier walked, stole second, took third as Yan Gomes' throw sailed into center field for an error and came home when center fielder Rajai Davis overran the ball for another error.
Gomes' triple boosted the lead to 4-1 in the eighth. Cabrera greeted Bryan Shaw with a home run on a 1-2 pitch in the bottom half.
Cleveland, which trailed by six games before play on May 10, closed within a half-game of the AL Central-leading White Sox, who lost for the ninth time in 12 games. Chicago finished a 3-7 homestand in which it scored more than three runs just twice.
Miguel Gonzalez (0-1, 4.57 ERA) looks to keep the No. 5 spot in the rotation at Kansas City in the opener of a 10-game trip. LHP Danny Duffy (0-0, 2.13) is to start for the Royals.