The Royals won their fifth straight and Cleveland lost its fourth in a row. The Indians had the would-be winning run thrown out at home in both the ninth and 11th innings.
Olivo, who drove in Kansas City's first run with a groundout in the fourth, hit an 0-2 pitch out to left-center for his 19th homer of the year.
That blast came only a few minutes after Michael Brantley had been thrown out at home by left fielder David DeJesus trying to score on Jhonny Peralta's single.
DeJesus also cut down Asdrubal Cabrera at home in the ninth when he tried to score from second on a Peralta base hit.
Olivo's homer came off Jose Veras (4-3) and made a winner out of Jamey Wright (2-5), who allowed a hit and struck out two in two innings of work.
Joakim Soria gave up a lead-off single in the bottom of the 12th, but retired the next three batters for his 25th save.
Copyright 2009 by United Press International.