Marco Scutaro led the onslaught with seven RBI on three hits, including a grand slam in the ninth inning long after the Giants had the game in the bag.
Vogelsong (10-5) gave up three hits and three walks over seven innings.
The Giants blew the game open in the sixth inning with five runs to take a 7-0 lead. Tyler Pence drove in one run with a single and two more runs crossed on a fielding error by second baseman Tyler Greene.
Melky Cabrera and Brandon Crawford both went 2-for-4 with an RBI for the Giants, who have won five of their last six games and scored in double digits three times during the stretch.
Joe Kelly (2-5) took the loss on seven runs -- four earned -- on nine hits in five-plus innings. Matt Carpenter and Jon Jay both had two hits for the Cardinals, who have lost back-to-back games.