Jeff Francis pitched eight sharp innings, Melky Cabrera hit a grand slam and the Kansas City Royals pounded the Cleveland Indians 12-0 on Friday night in a game that turned testy in the fourth inning.

Billy Butler went deep twice and Alex Gordon also connected for Kansas City, which has won seven of 10. Butler hit a two-run shot in the first and a solo drive in the eighth, giving him five long balls in a four-game homer streak.

Butler came to the plate right after Cabrera's grand slam in the fourth, and Cleveland starter Carlos Carrasco promptly threw one at his head on the first pitch. Carrasco was ejected.