CLEVELAND — Frank Thomas hit a two-run homer and Ray Durham had three RBIs as the first-place Chicago White Sox beat Cleveland 8-7 and opened a three-game lead over the Indians in the AL Central.

Cal Eldred (7-2) allowed three runs and five hits in six innings and struck out seven as the White Sox took an 8-3 lead and won for the 10th time in 12 games. After Jim Thome's ninth-inning homer, Keith Foulke retired Sandy Alomar Jr. on a game-ending double play for his 15th save.

Paul Rigdon (1-1) gave up five runs and seven hits in five innings.

MARINERS 5, ROYALS 3: At Kansas City, Mo., Edgar Martinez homered and drove in four runs, increasing his major league-best RBIs total to 68.

Martinez had a three-run homer off Miguel Batista (2-6) in the first and an RBI groundout in the third.

TWINS 7, ATHLETICS 2: At Minneapolis, Eric Milton (6-1) struck out a season-high 11 in seven innings, and Butch Huskey hit a two-run homer off the glove of Ben Grieve for a 4-2 lead in a five-run fourth.

BLUE JAYS 4, TIGERS 2: At Detroit, Frank Castillo (2-5) allowed two runs on five hits in seven innings to win for the first time since May 2. Billy Koch got four outs for his 13th save.

Brad Fullmer was 2-for-4, including a homer.

Hideo Nomo (2-6), who lost his third straight start, gave up four runs on seven hits with eight strikeouts in 7 2-3 innings. Bobby Higginson hit a two-run homer for the Tigers.