CLEVELAND — Yan Gomes' two-run homer in the eighth inning gave the Cleveland Indians a 3-2 win over the Chicago White Sox on Sunday.
Gomes drove in all three Cleveland runs. His home run to right off Javy Guerra (0-2) came after the White Sox scored two runs in top of the inning to take a 2-1 lead.
Nick Swisher led off with a single before Gomes, who also had an RBI single in the second, hit a 1-1 pitch into Chicago's bullpen.
Bryan Shaw (4-1) allowed two runs in the top of the eighth. Cody Allen pitched the ninth for his 12th save, striking out the final two hitters.
Trevor Bauer struck out a career-high 10 in 6 2-3 scoreless innings for Cleveland.
Gordon Beckham's RBI single tied the game before Leury Garcia's hit to center put Chicago ahead, but the White Sox couldn't hold the lead for their fourth loss in five games.
The Indians head into the All-Star break with a 47-47 record.
John Danks allowed one run in seven innings.
The White Sox threatened throughout the game, but didn't score until the eighth. Conor Gillaspie singled with one out, took second on a wild pitch and scored on Beckham's single up the middle.
After a groundout, Garcia sent a roller to the right side. Second baseman Jason Kipnis tried to make a backhand stop near the bag, but the ball went under his glove and rolled into center field.
Bauer allowed eight hits and had at least one base runner in every inning, but pitched out of trouble each time. The right-hander was pulled after All-Star Jose Abreu's two-out single in the seventh, but Marc Rzepczynski retired Adam Dunn.
White Sox All-Star shortstop Alexei Ramirez was out due to a stiff back but is expected to play in Tuesday's All-Star game in Minneapolis.