The Indians rallied from a three-run deficit to end a four-game losing streak.
In a 4-4 game and with Sidney Ponson (1-5) on the mound, DeRosa came to the plate with two away and pinch-runner Matt LaPorta on second. DeRosa's double to right put the Indians in front and DeRosa then came in on Ben Francisco's single to center.
Kansas City threatened to regain the lead in both the eighth and ninth innings, but relievers Rafael Betancourt and Kerry Wood worked out of trouble.
The Royals had a run in and a runner on first with a man out when Betancourt came on in the bottom of the eighth. Betancourt walked John Buck, but then struck out Mike Aviles and Coco Crisp to escape the jam.
In the ninth, Wood walked the bases loaded with one out before striking out Mark Teahen and David DeJesus to earn his sixth save. Wood had allowed four runs in the ninth on Tuesday while Kansas City was rallying for a 6-5 win.
Aaron Laffey (3-0) got the victory by giving up a run in 1 1/3 relief innings.