TORONTO (AP) -- Alex Gordon showed his power for the first time, and Zack Greinke was the beneficiary.
Gordon hit his first career home run, helping the Kansas City Royals beat the Toronto Blue Jays 6-3 Tuesday night to stop a three-game losing streak.
Gordon was hitless in 13 at-bats and 1-for-24 this season when the rookie hit a two-run homer in the sixth against Josh Towers (0-1) that boosted Kansas City's lead to 4-1.
Greinke (1-1), who pitched in just three games last season because of depression and social anxiety, allowed one run and six hits in six innings, struck out five and walked none. Joakim Soria pitched two perfect innings for his first career save, ending Toronto's three-game winning streak.
Towers allowed six runs -- three earned -- and 10 hits in 5 2-3 innings, struck out six and walked none. Last year, he lost his first nine decisions and finished 2-10 with an 8.42 ERA.
One night after a sellout crowd of 50,125 watched Toronto's home opener, the game drew 22,106 to Rogers Centre.
Mike Sweeney's sacrifice fly put Kansas City ahead in the first. Greinke escaped trouble in the bottom half after Alex Rios led off with a double and moved to third on a Lyle Overbay's grounder, with Vernon Wells flying out and Frank Thomas taking a called third strike.
David DeJesus tripled in the third and scored on Mark Grudzialanek's single, but Alex Rios had a two-out RBI single in the fifth.
Gordon homered after Mike Sweeney reached on a throwing error by third baseman Troy Glaus, and Tony Pena Jr. hit a run-scoring triple that chased Towers. DeJesus, who had three hits, add an RBI single.
Gregg Zaun hit a two-run pinch-hit homer in the seventh off Joel Peralta.
Toronto Raptors All-Star F Chris Bosh of the Toronto Raptors threw out the ceremonial first pitch, then watched from a box with the rest of his NBA Atlantic champion teammates