Alex Gordon had driven his eighth home run of the season to right field in the top of the seven inning, facing Cardinals starter Jake Westbrook. It had broken a tie and given the Royals a 4-3 lead.
After Colby Rasmus had singled against reliever Tim Collins to lead off the eighth, Royals manager Ned Yost called upon Greg Holland who coaxed Albert Pujols into a ground out, before giving up the 433 foot two-run shot to Matt Holliday.
The Cardinals scored the first run, after leadoff batter Ryan Theriot doubled and advanced to third on a wild pitch by Vin Mazzaro. Rasmus then hit a sacrifice fly, scoring Theriot.
Mazzaro went six innings, allowing three runs on seven hits. He struck out and walked two Cardinals each. He finally got his ERA back to under 10, after the brutal first start he made earlier this season against the Cleveland Indians.
St. Louis scored single run in the first three innings, before going scoreless until Holliday's home run.
The Royals scored twice in the second, on a two out two-run triple by Alcides Escobar. Escobar was 2-for-4 on the evening, and now has raised his batting average to .250.
Kansas City added a fourth inning solo home run by Matt Treanor, his third of the season, and first since April 15. Treanor was 2-for-4 during the game.
The Cardinals stopped a seven game losing skid, and raised their record to 39-33. Kansas City fell to 31-40 overall, just 10-20 on the road. Jason Motte picked up the win (3-1), Holland took the loss (1-1), while Fernando Salas picked up his 12th save.
Saturday's box score can be seen here.
Danny Duffy (1-2 5.04) takes to the mound tomorrow against Jaime Garcia (6-2 3.18) as Kansas City looks to win the weekend series.