The second time was an entirely different story, and he didn't make it a third time through.
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.
"It took us a minute to get used to his decreased velocity compared to what we're used to," Holliday said. "It's really just more with your eyes and a timing thing. Once you see it, the next time your mind and body is much more in sync."
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.
"That's the type of offense I believe we are," Cardinals manager Mike Matheny said. "Great production up and down, everybody. The guys just kept coming and obviously we needed every one of them."
The Angels offense gave Weaver a 2-0 lead in the third and 5-3 lead in the fourth, but the Cardinals battled back each time.
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.
Adams gave the Cardinals some breathing room with a two-run single in the sixth after the Angels had crawled back within a run and delivered another RBI single in the ninth.
The Angels, down 12-7 entering the ninth, didn't go quietly. Kole Calhoun's RBI single and a two-run homer by Albert Pujols cut their deficit to 12-10, and Cardinals closer Trevor Rosenthal promptly walked the bases loaded upon entering. But Kevin Siegrist came in and struck out Carlos Perez and got Shane Robinson to pop out to end the threat and record his first save.
"The fact we came back from the brink I think says a lot about the heart in the club right there," Angels manager Mike Scioscia said. "You can tell a lot about people by how they react when things aren't going the right way, and a lot of things aren't going the right way for us, but the guys are getting in there and busting it and getting after it."
Cardinals: SS Jhonny Peralta (torn thumb ligament) has advanced to hitting in the cage and taking grounders. He is expected to participate in full batting practice next week.
Angels: 3B Yunel Escobar jammed his thumb diving for a ball in the eighth inning and is day-to-day. ... Cliff Pennington left in the fifth inning with a left hamstring cramp and is also day-to-day. ... LHP C.J. Wilson (shoulder inflammation) threw his third bullpen session in five days. He will pitch a simulated game Monday. ... RHP Huston Street (strained oblique) played catch for the third straight day and has a bullpen session targeted for next week.
A white and tan cat interrupted play in the fourth inning when it emerged from the visitors' dugout and sprinted across the field, angling toward third base before jumping into the stands along the home dugout on the third base line.
It then sprinted across three fan sections back toward the plate before being corralled by a fan as it tried to leap over the railing dividing one section from another.
It was the second straight day a cat made an appearance at Angel Stadium. Before Wednesday's game, a black cat was spotted running around the stands behind home plate prior to batting practice.
Angels: RHP Nick Tropeano (1-2, 3.69) opens up a three-game series at Seattle. He has won his two previous career starts at Safeco Field.
Rockies play the Padres in series rubber match
San Diego Padres (84-68, second in the NL West) vs. Colorado Rockies (65-87, fifth in the NL West)
White Sox bring 5-game losing streak into matchup against the Tigers
Detroit Tigers (58-92, fifth in the AL Central) vs. Chicago White Sox (76-76, second in the AL Central)
Cubs face the Pirates leading series 2-1
Chicago Cubs (66-86, third in the NL Central) vs. Pittsburgh Pirates (56-96, fifth in the NL Central)
Orioles meet the Astros with 2-1 series lead
Houston Astros (100-53, first in the AL West) vs. Baltimore Orioles (79-72, fourth in the AL East)
Athletics and Mets play, winner takes 3-game series
New York Mets (96-57, first in the NL East) vs. Oakland Athletics (56-96, fifth in the AL West)
Rays face the Blue Jays leading series 2-1
Toronto Blue Jays (85-67, second in the AL East) vs. Tampa Bay Rays (84-68, third in the AL East)