Neil Walker, Josh Harrison, Russell Martin and Andrew McCutchen all drove in two runs for Pittsburgh, which avoided being swept in the four-game series. Edinson Volquez tossed a complete game six-hitter to win his fourth straight start in a 9-1 victory. Milwaukee lost, so the Cardinals remain two back as they begin a crucial series before the All-Star break at Miller Park on Friday.
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.
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.