Holliday homered for the first time since May 12. He returned last Friday after missing 31 games because of a strained right quadriceps.
Holliday connected in the fourth inning for his fourth homer. Mark Reynolds added a solo shot in the fifth.
Wacha (11-3) gave up five runs in five innings. Trevor Rosenthal pitched the ninth for his 28th save in 30 chances.
Stephen Piscotty, St. Louis' top hitting prospect, made his major league debut playing left field. He had an infield single in four at-bats and struck out twice.
Carlos Rodon (3-3) was tagged for seven hits in four innings as the Cardinals built a 7-0 lead. Chicago lost its third in a row.
Four Cardinals relievers combined for four scoreless innings, handing the White Sox their fourth loss in five games since the All-Star break.
Carpenter ended an 0-for-17 slump with an RBI single in the second.
Cardinals: RHP Mitch Harris (right groin strain) was sent to Triple-A Memphis to begin a 20-day rehab assignment. ... OF Jason Heyward started in right field after exiting Saturday night's game again the Mets because of leg cramps. Heyward, who also had a head cold, didn't start on Sunday, but pinch hit in an 18-inning 3-1 loss to New York.
White Sox LHP John Danks (5-8, 4.98) faces St. Louis RHP Lance Lynn (7-5, 2.79) on Wednesday in the second game of the two-game set. Danks will make his first career appearance against the Cardinals. Lynn is 1-0 with an 0.68 ERA in two career starts against the White Sox.
Link to box score: St. Louis (59-34) 8 at Chicago White Sox (42-49) 5