Cardinals 6, Pirates 5: Allen Craig and Yadier Molina each recorded two hits and an RBI as visiting St. Louis jumped ahead early and held off Pittsburgh.Matt Adams and Mark Ellis added an RBI apiece during a four-run first inning for the Cardinals, who avoided a three-game sweep. Shelby Miller (5-2) allowed two runs on four hits and four walks In 5 1/3 innings and three relievers bridged the gap to Trevor Rosenthal, who allowed a run and loaded the bases in the ninth before inducing a popout and a 1-2-3 double play to earn his 10th save.Charlie Morton (0-5) was the tough-luck loser for the Pirates, surrendering four runs - one earned - and seven hits in six innings. Jordy Mercer hit his first home run for Pittsburgh and Pedro Alvarez added three hits and an RBI to help tighten things up in the later innings.Morton hit Jhonny Peralta with a pitch with one out in the first and Matt Holliday followed with a ground ball to third that Alvarez fielded and threw into right field while trying to start a double play. Craig and Molina followed with back-to-back RBI singles and Adams delivered a sacrifice fly before Ellis' run-scoring base hit capped the rally.Mercer's two-run blast to left in the fourth halved the deficit and the Pirates threatened in the seventh, but Carlos Martinez came out of the bullpen to record the final out with the tying run on second. Peter Bourjos provided some insurance with an RBI single in the eighth and Jon Jay scored on a wild pitch as St. Louis did just enough to hold off Pittsburgh.GAME NOTEBOOK: The Pirates recalled OF Jaff Decker as LF Starling Marte (back) sat out and CF Andrew McCutchen played through pain from a foot injury. … Molina finished 2-for-5 after entering the game on an 0-for-15 skid. … The Cardinals return home to host the Chicago Cubs on Monday, while Pittsburgh gets the day off before beginning a road trip at Milwaukee.