Kansas City, MO (SportsNetwork.com) - Alex Gordon hit a two-run homer and the Kansas City Royals beat the St. Louis Cardinals 3-2 on Saturday in a game that was shortened to six innings because of inclement weather.

Edinson Volquez (4-3) allowed two runs on four hits for Kansas City, winners in five straight including the first two games of this there-game interleague series. Volquez got through the top of the sixth inning before the game was called because of thunderstorms in the area.

"I was kind of hurrying my throws a little bit," Volquez said. "I knew the rain was coming. I was trying to get past the fifth inning.

John Lackey (2-3) took the loss after yielding all three runs on six hits in five innings.

"It stinks really bad," Lackey said of the rain-shortened loss. "There's a lot of game left."

Jhonny Peralta doubled to lead off the second inning and Volquez walked the next two batters to load the bases. Yadier Molina gave the Cardinals a 1-0 lead with his groundout, but Mark Reynolds popped up to the infield and Peter Bourjos flew to right.

The Royals climbed in front a half-inning later. Kendrys Morales, who drove in all five runs in Kansas City's 5-0 win Friday, singled to start the second. Gordon's homer to right made it 2-1.

Salvador Perez extended his hitting streak to nine games with an RBI single to left in the fourth inning that proved to be the game-winner. Eric Hosmer doubled earlier in the frame and tagged up to third on Morales' fly out to left.

The Cardinals loaded the bases again in the fifth inning, and again came away with just one run. Matt Carpenter's single plated Bourjos, but Peralta's double-play grounder ended the threat.

Volquez retired the side in order in the top of the sixth.

Game Notes

Royals third baseman Mike Moustakas left the game with a left clavicle contusion ... Both teams left five runners on base ... Gordon's home run was the first that Lackey allowed since opening day.