Adrian Beltre went 4-for-5, with a double and three singles, driving in three runs. Batting just .215 entering the game, Beltre upped his average to .241 with the effort.
Despite the loss, Boston remained safely in first place in the AL East, as both the second place Yankees and third place Orioles lost. Boston is 2 1/2 games up on the Yankees.
Oakland kept pace with the Rangers in the West, beating the Yankees, 2-0, to remain 1 1/2 games out.
The series continues Saturday afternoon at 7:10 pm EDT.
Holliday went 3-for-4 with three runs, singling and scoring in the fifth and seventh innings as the Cardinals extended their lead.
Carlos Beltran added a solo homer in the seventh inning, his eighth of the season.
The win kept the Cardinals a game in front of Pittsburgh, who topped Washington, 3-1. The Central division, which has been a see-saw battle for first place through most of the first month of the season, has opened up a bit as Cincinnati is 2 1/2 back and the Brewers have faded to 3 1/2 out with their third straight loss.
St. louis has won four straight and will look to extend their winning streak when the meet the Brewers at 4:05 pm EDT in game three of their four-game series.