Nolan Arenado homered for the third straight game, Tyler O'Neill hit one right after him and the St. Louis Cardinals completed an in-state sweep of the Kansas City Royals 7-2 on Sunday.
In the second inning, Arenado and O'Neill hit back-to-back homers for the second time in three games.
Arenado's was a two-run blast for his 25th and O'Neill powered his 432 feet over the center field wall for his 20th and a seven-run lead.
St. Louis batted around in the first inning and scored three times. Arenado had an RBI single and Jose Rondon hit a two-run double to lead 3-0.
J.A. Happ (7-6) faced the Royals for the fourth time this season. This start was his best of them all.
He went 5 2/3 innings and allowed no runs, five hits, two walks and struck out two. It was the second time this season he didn't allow a run in a start. Cardinals starting pitchers gave up just one earned run over 17 1/3 innings in the series.
Salvador Perez hit his 30th homer of the season in the eighth inning to put the Royals on the scoreboard. He hit it 450 feet into the left-field fountains, which also marked his 400th career extra-base hit.
The Cardinals have a day off before returning home against Milwaukee while Kansas City continues their homestand tomorrow night against Houston.