Anderson, whose exuberant bat flip after his fourth-inning home run was a catalyst for the brawl, was suspended for “his conduct after the benches cleared,” the league said in a statement.
Both players received an undisclosed fine, and it is unknown whether either will appeal.
Keller plunked Anderson with the first pitch of the sixth inning. Anderson, whose .422 batting average leads the American League, 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.
Anderson directed derogatory comments at Keller, sources told ESPN’s Jeff Passan.
White Sox manager Rick Renteria and Royals bench coach Dale Sveum shoved each other, and the usually mild-mannered Renteria was particularly animated.
Renteria also received a one-game suspension, to be served in Friday’s road game against the Detroit Tigers.
There were four ejections: Anderson, Keller, Renteria and Sveum.
Although 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,” said Dozier, who hit a tiebreaking homer in the 10th inning of the Royals’ 4-3 win.
Anderson was surprised by his ejection.
“It’s all confusing,” he said. “I’m the one that ended up in the locker room, and I was the one that got hit by a pitch.”
The Associated Press contributed to this report.