Unbeaten in 12 starts since July 11, Lee (22-2) allowed four earned runs in 8 1-3 innings to win his eighth straight start. He's 5-0 in five outings against Kansas City, which was also Lee's opponent for wins No. 4, 8, 18 and 21. Luckily, the Royals won't have to face the left-hander again until next season.
It's almost unthinkable to remember that Lee, who was demoted to the minor leagues last season and was left off Cleveland's 2007 postseason roster, had to win a spot as the Indians' fifth starter during spring training.
Lee is the first pitcher to have 20 more wins than losses since Oakland's Bob Welch in 1990. Welch went 27-6 and won the AL Cy Young Award that season, and Lee, who is scheduled to make three more starts, appears to be on his way to giving Cleveland its second straight award winner following CC Sabathia.
Lee's 11-game winning streak is the longest by an Indians pitcher since Gaylord Perry won 15 in a row in 1974.
He was almost machinelike in his efficiency. Lee did not go to a single three-ball count and was three outs away from his fifth complete game when the Royals, who collected 11 hits, scored three runs off him in the ninth.
Jose Guillen homered twice for Kansas City.
Kelly Shoppach had three RBIs off Gil Meche (11-11), Shin Soo-Choo homered and drove in three and Grady Sizemore and Asdrubal Cabrera had two RBIs apiece for the Indians.
Shoppach pulled an 0-1 pitch from Meche over the left-field wall to make it 2-1 in the third. The 28-year-old's production this season has been a pleasant surprise for the Indians, giving them another option behind the plate and the ability to preserve catcher Victor Martinez by occasionally moving him to first base.
The Indians, now 35-21 since July 10, scored four runs in the fifth to open a 6-1 lead.
Sizemore singled with one out - his first hit in 26 at-bats - and went to third on Jamey Carroll's double. Choo then hit his second RBI single, and one out later, Ben Francisco doubled in a run. Shoppach followed with a two-run single, giving him 33 RBIs in his last 43 games.
Cleveland blew it open with three runs in the sixth.
Kansas City tied it 1-1 in the second on Mark Teahen's run-scoring single and the Royals had a chance to do more damage against Lee, but had two runners thrown out at home.
With one out and runners at first and third, Tony Pena hit a comebacker to Lee, who snagged the hard grounder but dropped the ball as he began to whirl and throw to second for a potential inning-ending double play. Lee recovered and alertly threw home to get a sliding Esteban German.