Volquez (8-6) has a 0.90 ERA in winning four consecutive starts for the first time in his career. He struck out five and walked two.
Shelby Miller (7-8) allowed four runs in five innings. He walked four and struck out one.
Walker extended his hitting streak to a season-high 12 games with a two-run double in the fifth that extended the Pirates lead to 4-1. McCutchen started the three-run uprising with a run-scoring single that broke a 1-all tie.
McCutchen drove in a run in the sixth with a sacrifice fly. Harrison added a two-run double in the inning that made it 6-1.
Martin homered off Jason Motte in the ninth. Martin drove in his 500th career run in the first inning.
The Cardinals were playing without All-Star catcher Yadier Molina, who tore a ligament in his right thumb in Wednesday's 5-2 win. Molina will undergo surgery on Friday and is expected to miss 8 to 12 weeks.
St. Louis tied it in the third on a sacrifice fly by Matt Carpenter. Kolten Wong began the inning with a single.
NOTES: St. Louis OF Allen Craig, mired in an 0-for-13 skid did not play Thursday. ...The Cardinals open a three-game series in Milwaukee on Friday. Joe Kelly (1-1, 0.59) will face Yovani Gallardo (5-5, 3.45) in the first game. Kelly is making his first appearance since straining his left hamstring on April 16. ... Pittsburgh will travel to Cincinnati for a three-game series beginning Friday. LHP Jeff Locke (2-1, 3.08) will face Mat Latos (2-1, 2.41) in the opener. ... St. Louis C Tony Cruz, who is replacing Molina, allowed a passed ball in the sixth that brought in a run.