Detroit’s hold on the AL Central was slightly loosened by a 4-3 loss at Kansas City.
Salvador Perez hit a tiebreaking two-run homer with two outs in the sixth, making it 4-2.
The Tigers pulled a run back in the seventh, but Royals closer Greg Holland worked a perfect ninth for his 39th save in 42 chances.
Cleveland closed the gap on Detroit by beating the New York Mets 9-4, with Asdrubal Cabrera hitting a three-run homer for the Indians.
Meanwhile, Oakland opened a mini-break atop the AL West by edging Houston 2-1.
Dan Straily (9-7) pitched seven scoreless innings, striking out seven and walking one in his third consecutive victory. He has a 1.50 ERA over 18 innings during his winning streak.
They crept 1.5 games clear of Texas, who struggled against Los Angeles pitcher Garrett Richards and lost 8-3 to the Angels.
Richards (6-6) allowed one earned run in seven innings, while striking out five and walking one. The right-hander, who finished his night by fanning the side on 18 pitches, is 4-0 with a 3.25 ERA in seven starts at home this season.
Mark Trumbo hit a mammoth home run for the Angels.
Arizona’s Brandon McCarthy pitched eight strong innings to lift the Diamondbacks to a 2-1 win over San Francisco.
Baltimore posted their third straight win and boosted their wild-card hopes with a 4-3 win over the Chicago White Sox as Matt Wieters hit a winning two-run single in the 10th inning.
San Diego rookie Jedd Gyorko hit a go-ahead homer leading off the eighth inning to give the Padres a 2-1 win over Colorado.
Toronto’s Adam Lind hit a pair of three-run homers as the Blue Jays downed Minnesota 11-2.
Washington’s Ryan Zimmerman homered twice and drove in three runs, powering the Nationals to a 9-2 victory over Miami.
Milwaukee’s Logan Schafer hit a three-run triple to help the Brewers beat the Chicago cubs 5-3.