Updated

Michael Wacha made a stellar major league debut for St. Louis, and the Kansas City Royals ruined it with a three-run rally in the ninth inning to defeat the Cardinals, 4-2, and snap an eight-game losing streak.

Cardinals reliever Mitchell Boggs (0-3) entered in the ninth trying to hold a 2-1 lead, and it took two pitches for Jeff Francoeur to smack a tying home run. After a walk to Alex Gordon, Victor Marte replaced Boggs and hit Alcides Escobar before an error loaded the bases and set up a two-run double by Eric Hosmer.

Marte then intentionally walked Chris Getz to again load the bases before rain moved over Busch Stadium and forced the game into a 4 1/2 hour delay. Umpires decided to wait out the rain, rather than call the game, which would have given St. Louis a 2-1 victory as the score would have reverted to the last full inning played.

"We had to fight hard to keep it, and (umpire) Joe West did a great job of giving us an opportunity," said Royals manager Ned Yost. "Because that wouldn't be fair for us to come back and just lose because it started raining. Joe hung in there and said, 'I'll stay here as long as we've got a chance.' I mean it was 3 o'clock (CT) when we went back out there. I don't know how many umpires would've done that."

Following the delay, St. Louis called on reliever Joe Kelly, who got out of the jam without surrendering a run. Pinch-hitter Miguel Tejada grounded into a 6-2-3 double play. After Kelly intentionally walked Elliot Johnson, Adam Moore flew out to right field to end the frame.

Greg Holland retired the side in order in the home half to pick up his eighth save of the season. Louis Coleman (1-0) earned the win after tossing 1 1/3 scoreless innings in relief.

Johnson drove in other run in the victory. Starter Jeremy Guthrie gave up two runs on eight hits and a walk in six frames.

Wacha, who was recalled from Triple-A Memphis prior to the game, allowed just two hits and one run and had six strikeouts over seven innings. The 21-year- old righty retired the first 13 batters he faced.

David Freese and Allen Craig had an RBI apiece in the setback.

Matt Carpenter began the home half of the first with a double and advanced to third on a wild pitch. Craig hit an infield single to score Carpenter, and two batters later, Freese's single plated Craig.

Wacha finally gave up his first hit to Lorenzo Cain, who ripped a double to center with one out in the fifth. After a flyout by Mike Moustakas, Johnson singled home Cain.

Game Notes

The Royals named George Brett interim hitting coach before the game ... Freese extended his hitting streak to 10 games ... St. Louis hosts the Giants for three games this weekend, while Kansas City begins a three-game road series against the Rangers on Friday ... The first pitch was delayed an hour because of rain.