Matt Holliday homered twice in two innings off Jered Weaver, Matt Carpenter homered as well and the Cardinals held off a late rally to beat the Los Angeles Angels 12-10 to complete a three-game sweep.
Weaver (3-2) retired the first 11 batters of the game before Holliday ended the streak with his first homer. Eight of the next nine Cardinals reached base, capped by a two-run homer from Holliday to end Weaver's night in the fifth.
Holliday matched his career high with four hits to pace an 18-hit outburst by the Cardinals. Matt Adams and Yadier Molina added three hits apiece, and every Cardinals starter had a hit.
Adam Wainwright (3-3) got the win despite allowing 11 hits and seven runs, six earned, in five innings.
Weaver gave up nine hits and eight runs allowed in four-plus innings for the Angels, who have lost six straight and 10 of their last 12.
Carpenter launched a three-run homer down the right field line in the fifth to make it 6-5 and put St. Louis up for good. Holliday followed two batters later with a two-run drive to center to chase Weaver from the game.
Michael Wacha (2-3, 3.12) tries to snap a three-game winless streak when he starts the opener of a three-game series at the Los Angeles Dodgers.