St. Louis' first win at Miller Park in five tries this season snapped Milwaukee's seven-game winning streak and trimmed the Brewers' NL Central lead to 2 1-2 games.
Holliday sparked the Cardinals' winning rally by beating a grounder to shortstop with two out. Holliday then swiped second for his first stolen base of the season and scored when Berkman hit a shallow flare to left against Marco Estrada (2-7).
Kyle McClellan (8-6) allowed a one-out single to Casey McGehee in the 11th, but earned the victory after Octavio Dotel got the final two outs for his first save in the NL this year and second this season.
Takashi Saito loaded the bases with no outs in the seventh after he hit Pujols on the left wrist that the slugger broke earlier this season. Holliday, who had homered in the second, followed with a double-play grounder that scored newcomer Rafael Furcal and tied it at 7. Berkman then grounded out to end the threat.
Tempers began to flare in the bottom of the inning after Jason Motte plunked Braun with a 97 mph fastball.
Drake warned both sides, but didn't eject anyone as Molina walked Braun down to first. Fielder moved forward from the on-deck circle, telling his teammates to stay back to keep the situation from escalating.
Motte was removed for Marc Rzepczynski, who walked Fielder. Lance Lynn allowed an infield hit to McGehee. Yuniesky Betancourt popped up harmlessly, Jonathan Lucroy hit into a fielder's choice to third baseman Daniel Descalso, who cut down Braun at home, and pinch-hitter Mark Kotsay struck out.
St. Louis loaded the bases with one out in the eighth but Francisco Rodriguez got Furcal to hit into a fielder's choice and struck out pinch-hitter Ryan Theriot. The excitable K-Rod shouted and pumped his fist, then blew a kiss to the sky as he walked off the mound. Theriot glared at him during the extended celebration.
Both teams had runners on in the ninth and shortstop Furcal saved the game with an over-the-shoulder catch with two on and two outs.
Drake tossed Molina for arguing a called third strike and the All-Star appeared to hit the umpire with spittle during his tirade. He had to be restrained by Descalso.