Greinke (15-8), who has given up just one earned run over his last 35 innings, lowered his MLB-best ERA to 2.08.
Alberto Callaspo went 3-for-3, drove in a run and scored once for the Royals, who won their third straight game. Alex Gordon drove two runs in the win.
Paul Byrd (1-2) took the loss after allowing five runs on nine hits with four walks over 6 2/3 innings.
Copyright 2009 by United Press International.