ST. LOUIS (AP) - James McDonald halted a string of ineffective starts with six innings of two-hit ball, helping the Pittsburgh Pirates beat the St. Louis Cardinals 2-1 Friday night in a matchup of NL Central playoff contenders.
Andrew McCutchen singled and scored on a passed ball in a two-run fourth for the Pirates, who also scored on a wild pitch that inning. Pittsburgh totaled 41 runs during its first six games in St. Louis this season.
McDonald (11-5) was 0-2 in his previous four outings while allowing 20 earned runs over 21 1-3 innings. He coughed up a 7-1 lead in his last start when he allowed six runs in the fifth during a loss to the Padres.
Jake Westbrook (12-9) allowed one earned run and six hits in 7 2-3 innings for the Cardinals, who managed only one run for the second straight game. One inning was the difference on Thursday night, too, when closer Jason Motte gave up consecutive homers with one out in the ninth of a 2-1 loss to Arizona.
The Cardinals lead the National League in hitting but have 10 hits in the last two games, including four infield hits Thursday.
McDonald retired the first 10 in order with the help of a double-play ball. Allen Craig doubled with two outs in the fourth for the Cardinals' first hit, but was erased trying to advance on a pitch McDonald bounced in front of the plate.
Joel Hanrahan worked around a one-out walk in the ninth for his NL-leading 34th save in 37 chances. Matt Holliday, just 4 for 45 in his last nine games, lined out to the right-field wall to start the inning.
The Pirates have won just three of nine, but they moved two games ahead of St. Louis for the NL's second wild-card spot. Pittsburgh won without second baseman Neil Walker, expected to miss the series after dislocating his right pinkie Wednesday.
Pittsburgh loaded the bases with a walk and singles by McCutchen and Garrett Jones to open the fourth, took the lead on Westbrook's wild pitch and made it 2-0 on a passed ball by Tony Cruz.
The Cardinals ended a string of 10 straight scoreless innings against Chris Resop in the seventh. Carlos Beltran opened with a bloop hit that ended a 2-for-20 slump and went to third on David Freese's double. Beltran scored on a one-out groundout by Cruz.
Cardinals third base coach Jose Oquendo was ejected by plate umpire Lance Barnett for arguing balls and strikes in the sixth.
NOTES: Kyle Lohse worked 6 2-3 scoreless innings with no decision Thursday for St. Louis, his eighth of the year out of his 19 quality starts. It's the most by a Cardinals pitcher since it happened nine times to Bob Tewksbury in 1992. ... Lance Lynn (13-5, 3.65 ERA) opposes Pirates LHP Erik Bedard (7-12, 4.56) on Saturday. Lynn has allowed three first-inning runs in three of his last four outings. ... The Cardinals released Triple-A Memphis 1B Mark Hamilton prior to the game in a move to clear space on the 40-man roster for lefty Jaime Garcia, due to pitch Sunday for the first time since June 5 when he was sidelined by shoulder fatigue. ... McCutchen leads the NL with a .360 average and 361 total bases. He scored his 85th run after entering the game tied for the league lead.