Just getting a win against any team, anywhere, felt good for the scuffling Chicago White Sox.

That it came at Wrigley Field against the Cubs made it a little sweeter.

Adam Engel and Matt Davidson homered and the White Sox broke a nine-game losing streak with a 3-1 victory over their crosstown rivals in their North Side ballpark on Monday.

"I was emotional just because we've been down eight days in a row," White Sox manager Rick Renteria said. "We've been looking for a victory and looking for our starter to give us a little length and he did."

Miguel Gonzalez (5-9) allowed one run and seven hits in 7⅓ innings, winning for only the second time in 11 decisions.

Engel lined his third homer of the season off reliever Justin Grimm several rows into the left-center bleachers to break a 1-1 tie in the sixth. Davidson led off the eighth with his 19th homer, which sailed onto Waveland Avenue.

In his first start since June 4 because of tendinitis in his pitching hand, Cubs righthander Kyle Hendricks pitched 4⅓ innings and allowed a run and eight hits. Hendricks struck out five and walked none, but White Sox hitters extended at-bats and drove up his pitch count to 92. He left after Jose Abreu's tying RBI double.

Cleveland 6, Cincinnati 2: Josh Tomlin pitched six innings and Carlos Santana homered twice as the host Indians won their fourth consecutive game, beating the tumbling Reds in the makeup of a May 25 rainout. Scooter Gennett and Zack Cozart hit solo shots for Cincinnati.

Houston 13, Philadelphia 4: Jose Altuve led the Astros' 18-hit attack, going 4-for-4 with three RBI in Philadelphia.

Miami 4, Texas 0: Giancarlo Stanton hit two home runs and moved into a tie for the major league lead with 32, sending Adam Conley and the Marlins over the Rangers. Texas star Adrian Beltre went 4-for-4, giving him 2,993 career hits. He moved closer to becoming the 31st player to reach 3,000.

American League

Toronto 4, Oakland 2: Francisco Liriano won for the first time in three starts, helping the Blue Jays end a three-game losing streak. Russell Martin had two hits, including a home run, and Ezequiel Carrera reached base three times as the last-place Blue Jays won the opener of a seven-game homestand. Oakland had only two hits against Liriano and three Toronto relievers.

Seattle 4, Boston 0: James Paxton allowed four singles, struck out 10 in seven innings over seven innings and won his fifth consecutive start in July for the host Mariners. Kyle Seager homered twice.

Baltimore 5, Tampa Bay 0: The Orioles sent the Rays to their season-worst fifth straight loss, in St. Petersburg, Fla. Baltimore won for the sixth time in eight games. Winner Kevin Gausman gave up five hits in six innings. Three relievers completed the six-hitter. Rays catcher Wilson Ramos left in the fifth when a piece of Ruben Tejada's broken bat struck him in the head. The team said Ramos got six staples and will be evaluated.

Kansas City 5, Detroit 3 (12): Salvador Perez and Mike Moustakas hit consecutive homers in the 12th inning, leading the Royals to their sixth consecutive victory, in Detroit. Jorge Bonifacio also homered for the Royals, who won despite squandering a 3-0 lead in the sixth. Jakob Junis, one of seven relievers used by Kansas City, pitched a hitless 11th for the win.

National League

St. Louis 8, Colorado 2: Randal Grichuk hit a two-run homer and Mike Leake pitched seven scoreless innings for the host Cardinals, beating the Rockies for the first time in nearly six years. The Cardinals improved to 20-5 against the Rockies at home since 2010.

New York 5, San Diego 3: Jacob deGrom won his eighth straight start, and the Mets hung on after watching a potential walk-off three-run homer by Jabari Blas sail barely foul.

Arizona 10, Atlanta 2: J.D. Martinez, acquired in a trade with Detroit last week, hit a three-run homer to help Zack Greinke and the Diamondbacks win in Phoenix. Greinke is 10-0 in 12 starts at Chase Field this season.

Notes

The Dodgers said ace Clayton Kershaw has a lower back strain, not the herniated disk issue that sidelined him for two months last year. The Dodgers put Kershaw on the 10-day disabled list; a Fox Sports report said he would be sidelined four to six weeks.