Gary Knotts (6-6) allowed two runs and five hits in 6 2-3 innings. Esteban Yan, Detroit's fourth pitcher, got two outs for his sixth save, completing a six-hitter.
Jason Grilli (2-2) lost despite pitching a three-hitter for his first complete game in 13 major league starts.
Joe Crede homered, giving Chicago six players with 20 homers for the first time in franchise history.
The Tigers, coming off consecutive shutout losses in Baltimore, stopped a 22-inning scoreless streak in the second.
Indians 6, Royals 1
In Kansas City, Casey Blake drove in three runs and Jake Westbrook pitched seven strong innings to lead Cleveland over Kansas City.
Westbrook (14-9) gave up five hits, lowering his ERA to 3.28, third in the American League behind Minnesota's Johan Santana (2.62) and Boston's Curt Schilling (3.26).
David DeJesus hit a solo home run leading off the sixth, and Jaime Cerda (1-3) relieved rookie Zack Greinke with a 1-0 lead in the eighth.
Cleveland loaded the bases with two out. D.J. Carrasco then relieved and Blake singled for a 2-1 lead.
Cleveland added four runs in the ninth off Jeremy Affeldt on run-scoring singles by Omar Vizquel, Ben Broussard and Blake, and an RBI double by Martinez.
Kansas City (57-99) must win its final six games to avoid tying the franchise record of 100 losses, set two years ago.
Athletics 6, Mariners 5
In Oakland, Bobby Crosby's sacrifice fly with one out in the ninth scored pinch-runner Esteban German with the winning run for Oakland.
The A's maintained their one-game lead in the AL West over second-place Anaheim.
Oakland held Ichiro Suzuki to one hit, leaving him five shy of George Sisler's 84-year-old record of 257.
Octavio Dotel (5-2) pitched a perfect ninth, getting two strikeouts and Mark Kotsay's clutch catch against the center-field wall on a hard-hit ball by Jose Lopez.
National League:
Pirates 6, Philadelphia 1, Marlins 4, Expos 1, Cubs 12, Reds 5, Astros 10, Cardinals 3, Diamondbacks 3, Brewers 1



