CHICAGO (AP) -- Yadier Molina hit a two-run homer, Joe Kelly threw six scoreless innings and the St. Louis Cardinals beat the Chicago Cubs 4-0 on Saturday.
Cubs shortstop Starlin Castro was pulled shortly after making a mental mistake that let the Cardinals score in the fifth.
The Cardinals led 1-0 and had the bases loaded with one out when Castro caught a popup by Matt Carpenter in short left field. Castro put his head down and hesitated to throw home, looking as if he thought the inning was over. Jon Jay scored from third base and the other runners advanced.
Cubs manager Dale Sveum said something to Castro when he reached the dugout. Donnie Murphy switched from third base to shortstop to replace Castro in the sixth, and Cody Ransom came off the bench to play third.
Kelly (4-3) hasn't lost since joining the Cardinals rotation on July 6. He allowed four hits, struck out six and walked three.
A trio of St. Louis relievers combined to allow one hit. Both teams finished with five hits.
The Cubs have lost 14 of their last 19 game. They have been shut out in five of their last seven at Wrigley Field.
Molina homered off Travis Wood (7-10) for a 4-0 lead in the sixth after Matt Holliday was hit by a pitch. Molina's ninth homer was his first hit in eight at-bats since he came off the disabled list Thursday.
Wood retired the first nine St. Louis batters. He gave up four runs and four hits in 51⁄3 innings.
Carpenter hit a leadoff double in the fourth and scored on a double by Carlos Beltran for a 1-0 lead.
The Cubs left the bases loaded in the third. Darwin Barney and Wood singled and Junior Lake drew a one-out walk, but Anthony Rizzo struck out and Nate Schierholtz grounded out.
RED SOX 6, YANKEES 1
BOSTON -- Jacoby Ellsbury had three hits, David Ortiz homered and John Lackey held down New York's resurgent offense as the Boston Red Sox broke a three-game skid by beating the Yankees 6-1.
Ortiz, Shane Victorino, Will Middlebrooks, Mike Carp and Daniel Nava each had two hits for the AL East leaders, who won for the third time in nine games.
Alfonso Soriano extended his hitting tear with two singles in four at-bats for the Yankees, but was held without an RBI after matching a major league record with 18 over his previous four games. He is 15 for 22 in his last five games with five homers and nine runs scored.
DIAMONDBACKS 15, PIRATES 5
PITTSBURGH -- Martin Prado went 4 for 5 with a three-run home run and Paul Goldschmidt added a three-run shot and the Arizona Diamondbacks routed the Pittsburgh Pirates 15-5.
Prado's 11th homer of the season capped a six-run third inning against All-Star Jeff Locke and put the Diamondbacks ahead 8-0. Prado has driven in 13 runs in his past 10 games.
Goldschmidt's 30th homer came in the ninth and tied him with Pittsburgh's Pedro Alvarez for the National League lead. Alvarez hit his 30th earlier in the game.
Goldschmidt and Didi Gregorius each had three of the Diamondbacks' 20 hits.
Gregorius had gone 2 for 29 in his previous eight games.
Trevor Cahill (4-10) earned his first win since May 17. He went five innings and allowed four runs and seven hits. He was activated from the disabled list before the game. He had been out since July 1 with a bruised right hip.