Ben Margot, Associated Press
Los Angeles Dodgers' reliever Takashi Saito delivers a pitch in the ninth inning of Sunday's game against the San Francisco Giants.

SAN FRANCISCO — James Loney can appear awkward at the plate at times. When he gets behind in the count, he often looks a lot better.

Loney doubled twice and drove in three runs and the Los Angeles Dodgers beat the San Francisco Giants 5-3 on Sunday for their third consecutive series win.

"Loney is one of those hitters you just have to shake your head," Dodgers' manager Joe Torre said. "He has an at-bat where he looks overmatched and all of a sudden he fires a double down the line."

Loney's first-inning double came on an 0-2 pitch and his fifth-inning double was on a 1-2 delivery.

"Sometimes I look like that," Loney said. "With two strikes on me I'm just looking to put it in play. For some reason two strikes increases my focus. I don't remember where the pitches were, I just react."

Andre Ethier added three hits and drove in a run for the Dodgers, who have won eight of their past 10 road games and remained within one-half game of Arizona in the NL West. Matt Kemp also drove in a run.

"We're getting runners on base and Andre and Loney are doing a great job of driving in a lot of runs," Kemp said. "I'm just trying to get on base for them."

National League

CUBS 7, CARDINALS 1: At St. Louis, Aramis Ramirez had two hits and three RBIs and Chicago rebounded from a final-inning loss to beat the Cardinals. Geovany Soto hit his 15th homer and Derrek Lee had three hits and an RBI for the NL Central leaders.

METS 4, PHILLIES 2 (12 INNINGS): At Philadelphia, Fernando Tatis hit a two-run homer in the 12th inning, lifting New York to victory in a game that ended more than seven hours after it started. Jayson Werth hit a two-run shot off Billy Wagner with two outs in the ninth to send the game into extra innings after it was delayed 2 hours, 50 minutes because of heavy rain in the bottom of the eighth.

BRAVES 7, ASTROS 6 (17 INNINGS): At Atlanta, Mark Teixeira singled off the wall with the bases loaded in the 17th inning, giving the Braves a victory over Houston in the longest game in Turner Field history.

BREWERS 11, PIRATES 6: At Milwaukee, J.J. Hardy hit two homers, All-Star starter Ryan Braun added one and the Brewers completed a three-game sweep. Hardy went 3-for-4 with four RBIs to raise his average to .446 over the last 18 games.

DIAMONDBACKS 3, PADRES 2: At Phoenix, Randy Johnson struck out 10 and allowed three hits in 6 1/3 innings and Arizona beat San Diego. Justin Upton hit the second-longest home run in Chase Field history and Mark Reynolds also homered for the Diamondbacks. Johnson (5-7) moved into sole possession of 24th place on the career victory list with his 289th win, moving ahead of Tommy John. It was his first victory since May 18.

MARLINS 10, ROCKIES 5: At Denver, Cody Ross homered and drove in five runs, Chris Volstad tossed two scoreless innings to win his major league debut and Florida beat the Rockies. Ross knocked in 15 runs in the four-game series after coming to Colorado with just 12 RBIs this season.

REDS 6, NATIONALS 5: At Cincinnati, Adam Dunn hit a three-run homer that started Cincinnati's comeback, and the Reds held on to beat Washington, completing a four-game series sweep. Edinson Volquez (11-3) got the victory and was chosen for his first All-Star team.

American League

YANKEES 5, RED SOX 4 (10 INNINGS): At New York, rookie Brett Gardner singled home the winning run off Jonathan Papelbon with two outs in the 10th inning, and the Yankees overcame a two-run deficit to beat Boston for a four-game split of their series. Alex Rodriguez hit his 536th homer, tying Yankees Hall of Famer Mickey Mantle for 13th on the career list, and Robinson Cano had a two-run triple in the seventh that tied it 4-4.

RAYS 9, ROYALS 2: At St. Petersburg, Fla., Evan Longoria hit a two-run homer during a four-run third and Tampa Bay notched its seventh straight win. James Shields (7-5) gave up two runs and four hits over seven innings to win his third consecutive start. He struck out eight and walked one. The Rays, with the majors' best record at 55-32, have won 11 of 12 overall.

RANGERS 11, ORIOLES 10: At Baltimore, David Murphy hit a three-run homer and Ian Kinsler got three singles to extend his hitting streak to 18 games, leading the Rangers to another win. Kevin Millwood (6-4) lasted five innings to get the win.

ANGELS 7, BLUE JAYS 1: At Anaheim, Calif., Jon Garland pitched a six-hitter for his 100th major league victory, Jeff Mathis tied a career high with three RBIs and Juan Rivera homered for the Angels.

TWINS 4, INDIANS 3: At Minneapolis, Carlos Gomez capped a three-run seventh inning against All-Star Cliff Lee with an RBI groundout, and the Twins handed the Indians to their eighth straight loss. Lee (11-2) lost for the first time in nine starts.

WHITE SOX 4, ATHLETICS 3: At Chicago, John Danks set a career high with nine strikeouts, and the White Sox handed Rich Harden his first loss in a year. Danks (6-4) took a no-hitter into the sixth as the White Sox salvaged a four-game split after dropping the first two. Chicago has won 10 of its last 13 games.

TIGERS 2, MARINERS 1 (15 INNINGS): At Seattle, the Mariners used backup catcher Jamie Burke to pitch in the 15th inning and the Tigers took advantage, scoring the winning run on Marcus Thames' sacrifice fly.