Kansas City broke a 3-3 tie with a walk to George Kottaras that forced in a run.
Darin Downs replaced Coke and, after a force out at home for the second out, Gordon hit a 2-0 pitch over the wall in dead center for his first career grand slam.
Tim Collins (1-0), who pitched the eighth, got the win but the Royals nearly wasted a strong start by James Shields, who allowed just five hits and three runs in eight innings.
Miguel Cabrera singled in a run in the first inning for the Tigers. Kansas City had runs in the third and fourth but Detroit, with RBI from Jhonny Peralta in the fourth and Torii Hunter in the fifth took a 3-2 lead.
Lorenzo Cain had a sacrifice fly that scored Royals pinch-runner Jarrod Dyson, who stole a base and advanced on a grounder, in the eighth and tied the score 3-3.