With the score tied 6-6 in the seventh inning, Matt Holliday drew a one-out walk from Tim Collins (4-2), stole second and scored when Freese grounded a 2-0 pitch through the hole, putting the Cardinals ahead to stay.
Beltran's blast in the first inning staked St. Louis to an early lead while Holliday added a sacrifice fly during a four-run eighth that iced the contest and the three-game series sweep for the Cards.
Victor Marte (1-1) earned the victory despite allowing the Royals to tie it in the sixth on a run-producing Salvador Perez groundout.
Kansas City starter Jonathan Sanchez was lit up for six runs on four hits over 5 2/3 innings.
Exploding whale video goes viral on Internet
Caroline Berg Eriksen: Soccer player's wife triggers debate with post-birth selfie