Kyle Kendrick (6-2) worked seven strong innings and contributed two hits and an RBI, including his first career extra-base hit, to a nine-run fourth. The Phillies had a season-high 21 hits.
Howard went 3-for-5 and drove in five runs. Carlos Ruiz had four hits and four RBIs.
The 20 runs tied the major league high for the season, set by the Phillies on May 26 at home against the Rockies, according to the Elias Sports Bureau.
The NL East leaders are 10-1 in Kendrick's last 11 starts. They are an NL-best 20-15 on the road and are averaging 7.5 runs in their last 22 games against the Cardinals.
The 20 runs were the most by an opponent at 3-year-old Busch Stadium, two higher than the previous high by the Astros on Sept. 20, 2007.
Utley hit his major league-leading 22nd homer, Howard his 16th and Burrell his 17th after Todd Wellemeyer (7-2) got two easy outs to start the game. It happened for the seventh time in franchise history, and the first time since May 18, 2004, against the Dodgers when Bobby Abreu, Burrell and Jim Thome connected in succession.
Utley is batting .402 during a 21-game hitting streak against the Cardinals with three homers and 20 RBIs.
Howard added a three-run shot in the sixth off Mark Worrell for his 14th career multihomer game, the second this season.
Cardinals reliever Russ Springer and manager Tony La Russa were ejected by home plate umpire Larry Vanover after Howard was hit by a pitch in the eighth. La Russa signaled to the bullpen for a pitching change from the infield during a lull in a long argument before leaving the field.
Cardinals third base coach Jose Oquendo was ejected in the eighth after arguing that Phillies reliever Rudy Seanez should have been tossed for throwing a pitch behind Brendan Ryan.