PHILADELPHIA (AP) Zack Greinke was 3 for 3 with a homer to offset his worst start in three years, and the Los Angeles Dodgers beat the Philadelphia Phillies 10-8 on Thursday.

Greinke (11-2) gave up five runs before getting an out and finished with six runs allowed and seven hits in six innings. But he helped himself at the plate, and Adrian Gonzalez hit a three-run homer to pace the NL West leaders.

The six runs equaled the total Greinke gave up in his previous nine starts combined. He had a scoreless streak of 45 2-3 innings during that span. Greinke hadn't allowed six earned runs since Aug. 19, 2012, when he gave up six for the Angels at Tampa Bay.

More from FoxSports

Greinke's ERA rose from 1.41 to 1.71. His batting average went from .170 to .220.

Kenley Jansen got two outs for his 21st save in 22 chances.

Domonic Brown hit a three-run homer for the Phillies. David Buchanan (2-6) lasted four innings and gave up seven runs and 10 hits.

CUBS 5, GIANTS 4

CHICAGO (AP) - Rookie bopper Kyle Schwarber homered in his second consecutive game and Chicago beat San Francisco to move a half-game ahead of the Giants in the race for the second NL wild card.

The Cubs, playing meaningful baseball in August for the first time in years, won for the seventh time in eight games.

Jorge Soler hit a two-run single in the first inning and Schwarber made it 5-0 with a three-run drive off Chris Heston (11-6) in the second. But instead of an easy win, the Cubs had to hang on.

San Francisco's Brandon Belt hit a two-run homer off Jason Hammel in the fourth and Brandon Crawford added another one off Tommy Hunter in the sixth to make it 5-4.

Jason Motte and Pedro Strop each worked a scoreless inning for the Cubs. Hector Rondon pitched the ninth for his 17th save in 20 chances.

The Giants lost for just the sixth time in 22 games.

Winning pitcher Justin Grimm (2-3) got out of a jam in the fifth.

YANKEES 2, RED SOX 1

NEW YORK (AP) - Jacoby Ellsbury hit a tiebreaking homer to snap out of a slump and CC Sabathia pitched six gritty innings after leaving his previous outing with dehydration, leading New York over Boston.

Alex Rodriguez had an RBI double and Justin Wilson (4-0) struck out three batters in the seventh to help the Yankees take two of three from the last-place Red Sox.

The AL East leaders next face a pair of Cy Young Award winners, R.A. Dickey and Toronto newcomer David Price, when they take on the streaking Blue Jays in a key weekend series. The division rivals, separated by 4 1/2 games, play the first of 13 remaining games against one another Friday night.

Andrew Miller put two on in the ninth but struck out Rusney Castillo to remain perfect in 24 save chances.

Ellsbury connected with two outs in the seventh off 22-year-old Eduardo Rodriguez (6-4).

BLUE JAYS 9, TWINS 3

TORONTO (AP) - Edwin Encarnacion hit a two-run homer and Mark Buehrle earned his 30th career win against Minnesota as Toronto beat the struggling Twins to complete a four-game sweep.

Encarnacion went 3 for 4 with four RBIs and scored twice. The surging Blue Jays won their fifth straight and swept a four-game series from the Twins for the first time.

Buehrle (12-5) allowed three runs in seven innings to win his third consecutive decision. He is 30-19 with a 3.68 ERA in 54 appearances against Minnesota.

Trevor Plouffe hit a two-run homer and Aaron Hicks had a solo shot for the Twins, who matched a season worst by losing their fifth straight. Minnesota is 5-14 since the All-Star break.

Now 54-54, the Twins are .500 for the first time since May 2, when they were 12-12.

Kyle Gibson (8-9), winless in four starts, matched his career worst by allowing eight runs in 4 2-3 innings.

CARDINALS 3, REDS 0

CINCINNATI (AP) - Michael Wacha gave St. Louis' tired bullpen a respite by throwing seven innings in the rain, and the Cardinals pulled away to beat Cincinnati.

The Cardinals improved to 30 games over .500 for the first time since the end of the 2013 season. They have the best record in the major leagues at 69-39. They took two of three in Cincinnati and have won 15 of their last 18 series together. The Reds were shut out for the last 18 innings.

Wacha (13-4) overcame a 68-minute rain delay at the start. The right-hander allowed four hits and a pair of walks, allowing only two runners to reach second base. Trevor Rosenthal gave up an infield single and a walk in the ninth while getting his 32nd save in 34 chances and completing a five-hitter.

Tony Cruz snapped his 0-for-15 slump with an RBI single, and Kolten Wong singled home two more off Michael Lorenzen (3-7) as the teams played through intermittent, sometimes heavy rain. There was a long delay after the sixth inning to spread a drying compound around the infield.

TIGERS 8, ROYALS 6

DETROIT (AP) - Ian Kinsler hit a two-run homer off Ryan Madson in the ninth inning to lift Detroit past Kansas City.

Jose Iglesias led off with a single against Madson (1-2) before Kinsler hit a 2-0 fastball into the bullpen in left field. Alex Wilson (2-3) got the win after getting out of a bases-loaded jam in the ninth.

Victor Martinez hit a three-run homer in the third and a two-run shot in the fifth to help the Tigers take a 6-3 lead. Martinez hadn't homered since July 17 and hadn't had a multihomer game since hitting two for Boston against Toronto on Sept. 17, 2010.

The Royals tied it with a three-run seventh. Drew Butera led off with a homer, and Kendrys Morales had a two-run double.

NATIONALS 8, DIAMONDBACKS 3

WASHINGTON (AP) - Ian Desmond broke out of a prolonged slump with a home run and a double, and Bryce Harper reached base five times to help Washington beat Arizona.

Desmond's 12th homer of the season ended a 2-for-35 skid. His double leading off the fourth inning gave him more extra-base hits in one day than he had produced in his previous nine games.

Joe Ross (3-3) pitched six solid innings, giving up just a solo homer to Jarrod Saltalamacchia. The rookie allowed five hits and struck out seven without walking a batter.

The Nationals, who had lost four of five, split the four-game series and moved within 1 1/2 games of the first-place Mets in the NL East.

Jeremy Hellickson (7-8) gave up four runs, five hits and four walks in 4 2-3 innings.

Clint Robinson broke the game open with a three-run homer in the eighth.

ASTROS 5, ATHLETICS 4, 10 INNINGS

OAKLAND, Calif. (AP) - Jed Lowrie hit an RBI double off Edward Mujica with two outs in the 10th inning to make up for a costly error and lift Houston over Oakland.

Carlos Correa launched a go-ahead homer in a three-run eighth that gave the Astros a 4-2 lead. But the AL West leaders had to rally again after the A's scored two unearned runs off closer Luke Gregerson in the ninth.

Lowrie aided the Oakland comeback with a throwing error at third base. But the former Athletics shortstop, who drove in Houston's first run with a sacrifice fly, came through an inning later.

Jose Altuve led off the 10th with his third hit. He stole second on a pitchout and was sacrificed to third by Carlos Gomez. Mujica (2-4) retired Correa on a popup before Lowrie doubled to left field.

Gregerson (5-1) was credited with the win after his fourth blown save in 26 chances. Will Harris got three outs for his first major league save.

Stephen Vogt and Brett Lawrie homered for Oakland, which wasted a strong start by rookie Aaron Brooks.

BREWERS 10, PADRES 1

MILWAUKEE (AP) - Khris Davis hit two three-run homers for Milwaukee, and Matt Garza limited San Diego to two hits in seven innings.

Davis homered for the first time since July 18, connecting off Padres starter Odrisamer Despaigne (5-8) in the third - a shot into the San Diego bullpen that made it 4-0. Davis also homered off Kevin Quackenbush in the eighth.

Garza (6-12) walked two and struck out five in his first victory in three starts. He avoided joining teammate Kyle Lohse as the only 13-game losers in the majors.

Garza gave up a single to Derek Norris in the second and then nothing more until Melvin Upton Jr. hit a home run in the fifth. Garza retired the next seven batters and left with a 7-1 lead.

BRAVES 9, MARLINS 8

ATLANTA (AP) - Eury Perez drove in the go-ahead run in the eighth inning and Nick Markakis had three RBIs to help Atlanta beat Miami.

Adonis Garcia hit a two-run homer for the Braves, who won for just the fourth time in 15 games.

Martin Prado had three RBIs for Miami, which has dropped 11 of 13.

The Marlins scored three in the eighth to tie it 8-all. But then Perez delivered the decisive hit against Bryan Morris (3-3) after Daniel Castro reached on an infield single, advanced to second on an error and moved over on a bunt.

Andrew McKirahan (1-0) got the win despite giving up three hits and three runs in the eighth. Arodys Vizcaino earned his first career save.