Fiercely energetic Tim Anderson spiked his bat to celebrate a home run and Kansas City's Brad Keller responded by drilling him with a fastball, setting off a benches-clearing fracas in the Royals' 4-3, 10-inning victory over the White Sox on Wednesday for their first road win in six games this season.

Though Keller insisted he wasn't trying to hit anyone, Kansas City's Hunter Dozier said Anderson should have expected retaliation.

"And once you get hit, just deal with it and go to first. That's my take on it," Dozier said.

Anderson tossed his bat toward the White Sox dugout following his two-run drive in the fourth inning. Keller hit him in the buttocks with his first pitch leading off the sixth.

Anderson was restrained by Royals catcher Martin Maldonado but kept jawing with Keller on the way to first base. The dugouts and bullpens emptied, though no punches appeared to be thrown. White Sox manager Rick Renteria and Royals coach Dale Sveum shoved each other, and the usually mild-mannered Renteria was particularly animated. There were four ejections: Anderson, Keller, Renteria and Sveum.

"It's all confusing," Anderson said. "I'm the one that ended up in the locker room, and I was the one that got hit by a pitch."

Dozier led off the 10th with a tiebreaking homer against Nate Jones (0-1).

Cleveland 1, Seattle 0: Carlos Carrasco rebounded from one of his worst starts with 12 strikeouts, Jake Bauers hit a home run and the visiting Indians completed a three-game sweep. The loss ended the Mariners' run of games with a homer at 20.

New York 5, Boston 3: Brett Gardner hit a seventh-inning grand slam off Ryan Brasier for his 100th career home run, and the host Yankees rallied for a two-game sweep. Red Sox second baseman Dustin Pedroia left early because of knee discomfort.

Oakland 2, Houston 1: Frankie Montas pitched 6⅓ innings of one-run ball and Matt Chapman homered to lead the host Athletics past the Astros.

Tampa Bay 8, Baltimore 1: Brandon Lowe, Ji-Man Choi and Yandy Diaz homered and the host Rays earned their eighth victory in nine games.

Texas 5, Los Angeles 4: Shin-Soo Choo delivered a tiebreaking two-run triple while reaching base his first three times from the leadoff spot, and the host Rangers swept the Angels.

National League

St. Louis 6, Milwaukee 3: Matt Carpenter and Marcell Ozuna each went deep, and the Cardinals beat the Brewers to avoid a sweep at Miller Park.

Los Angeles 3, Cincinnati 2: A.J. Pollock hit a three-run homer in the sixth inning, and the Dodgers tied the major league record by homering in their 32nd consecutive home game during their victory over the Reds to complete a three-game sweep.

Arizona 3, Atlanta 2 (10): Adam Jones drew a bases-loaded walk in the 10th inning to bring in the game-winning run for the Diamondbacks against the host Braves.

Washington 9, San Francisco 6: Juan Soto and Howie Kendrick hit first-inning home runs, Matt Adams and Kurt Suzuki connected in the seventh, and the host Nationals beat the Giants.

Philadelphia 3, New York 2: Jake Arrieta pitched neatly into the ninth inning, Scott Kingery and Cesar Hernandez hit solo homers and the host Phillies beat the Mets.

Chicago 6, Miami 0: Cole Hamels pitched seven strong innings and the Cubs completed a three-game sweep of the Marlins in Miami.

Interleague

Detroit 3, Pittsburgh 2 (10): Colin Moran hit an RBI single and the Pirates beat the host Tigers for a second day in a row in 10 innings.

Notes

• Braves closer Arodys Vizcaino will miss the rest of the season after undergoing surgery on his right shoulder.

• The A's put pitcher Marco Estrada on the 10-day injured list because of a lumbar strain.