Alec Burleson went 1-for-3 with two RBI and Kyle Leahy allowed just one run in six innings to lead the St. Louis Cardinals to a 4-2 win over the Kansas City Royals.