Alex Rios tied an American League mark with six hits in a nine-inning game, and Adam Dunn hit a go-ahead, two-run homer off Justin Verlander in the eighth to lift the White Sox to an 11-4 win over the Tigers on Tuesday in Detroit.
Dayan Vicideo's second homer of the game helped the White Sox score seven runs in the eighth inning, and they scored three more runs in the ninth to surpass a season high for scoring.
Miguel Cabrera hit his 29th homer, an impressive blast to left-center, to give him a major league high 92 RBIs and .363 batting average.
He broke the franchise record for homers before the All-Star game, surpassing the total Cecil Fielder had at the break in 1990 during his 51-homer season
Verlander (9-6) gave up a season-high 12 hits, five runs and struck out three to match a season low in seven-plus innings.
Cubs 7, Angels 2: Alfonso Soriano hit two of the Cubs' season-high five home runs and Travis Wood earned his first win in nearly 6 weeks in a 7-2 win in Chicago.
Anthony Rizzo, Starlin Castro and Darwin Barney also homered for Chicago in the interleague game.
Wood (6-6) gave up four hits over 6 2/3 innings and retired 14 straight from the second inning into the sixth for his first victory since May 30.
Cardinals 9, Astros 5: Adam Wainwright picked up his National League-tying 12th win with seven scoreless innings and Matt Holliday hit his team-high 13th home run as the Cardinals won in St. Louis.
Matt Carpenter had three hits and drove in three runs for St. Louis, which has won four in a row and five of six.
Houston dropped its ninth in the last 11 and leads the majors with 58 losses.
Wainwright (12-5) allowed five hits, struck out nine and walked one in improving to 13-1 in 15 career starts against Houston. He is tied with Washington's Jordan Zimmermann (12-3) for most wins in the NL.
The Cardinals battered former nemesis Bud Norris (6-8) for seven runs and 11 hits in five innings. Norris entered the game with an 8-5 mark and a 2.74 ERA against St. Louis.