Patience was also key in producing 41 hits, 30 runs and a three-game sweep of the shell-shocked Royals, who had won two out of three the previous weekend in St. Louis.
|More on Cardinals-Royals|
|More MLB coverage|
"Guys aren't chasing many pitches out of the [strike] zone," said manager Mike Matheny. "That's kind of what's going on here."
In heaping three days of abuse upon KC pitchers, the heavy-hitting Cardinals rapped out 17 hits and 11 runs on Friday and 16 hits and eight runs on Saturday before completing their first sweep in Kansas City since 2009 with an 11-8 victory on Sunday.
"When you set in to play these games, you want the opposition to beat you," said Royals manager Ned Yost. "When you are walking guys and making errors, you are actually beating yourself."
"We know we're a good offensive team that's going to be able to score runs. It's good to see guys getting healthy and swinging the bat a lot better," said Beltran.
Beltran gave the Cardinals an early lead in the first, lining Sanchez's 0-2 pitch 389 feet over the fence for his 20th home run after Craig doubled and Holliday walked.
Beltran is tied with Milwaukee's Ryan Braun for the NL lead. The three RBI boosted his total to 56, one more than league-leader Andre Ethier had prior to the Dodgers' game at the Angels. For the three-game series between the state rivals, Beltran had five hits and eight RBI.
He's also one homer shy of 200.
"I don't really focus on numbers," he said. "I do look at my numbers at the end of the year and decide what type of year I have. Right now, we have a lot of baseball to play. I just need to focus and help this team win as many ballgames as we can."
Mike Moustakas had two home runs for the Royals while Jeff Francoeur had one.
Moustakas, the second overall pick in the 2007 draft, hit a two-run, 442-foot shot off Lance Lynn in the first inning and led off the fourth with a 387-foot shot for his first multihomer game. He also had a single and three RBIs.
"I just got some good pitches to hit today and I didn't miss them," Moustakas said.
"I made mistakes and both the guys who hit them are good hitters," he said. "Moustakas is a great young power hitter and I threw him two fastballs over the plate and he hit them. Then I hung a breaking ball to Francoeur. You've got to make better pitches to those guys."
In the second, Holiday hit an RBI double that that also put Craig on third, allowing him to make it 5-2 when Sanchez uncorked a wild pitch.
With the Cardinals leading 7-6 in the eighth, Collins (4-2) intentionally walked Rafael Furcal, loading the bases with one out. Craig then lined a two-run single into center and Daniel Descalo went from first to third when Jarrod Dyson bobbled the ball for an error. Holliday's sacrifice fly made it 11-6. Collins went 1 2/3 innings and was charged with five runs, four earned, on three hits and three walks.
Victor Marte (1-1) got two outs in the sixth and faced one batter in the seventh for the win.
Cardinals starter Lynn, bidding to move into a tie for the NL lead with his 11th victory, went 5 1/3 innings and gave up nine hits and six runs, including three home runs. He had allowed only five home runs total before Sunday.
Moments after Francoeur's solo homer in the fourth made it 5-4, Brayan an Pena hit a line shot right off the back of the 6-foot-5 right-hander for a single. Lynn continued after tossing a few test pitches, and one out later gave up Dyson's RBI triple that tied it 5-all.
"I'm fine," said Lynn. "It just grazed my back."
Sanchez gave up only four hits in 5 2/3 innings but walked six, allowed two home runs and threw a wild pitch while allowing six runs.
- Royals 1B Eric Hosmer had the day off and was replaced by Billy Butler.
- Beltran's homer came exactly eight years after his previous home run in Kauffman Stadium, in his final game as a Royal.
- Moustakas joined Butler as the only Royals player with two-homer games this season.
- The Cardinals lead the series 42-30.