Jon Garland threw seven sharp innings, pinch hitter Matt Stairs hit a two-run homer in the eighth and the San Diego Padres hung on to beat the host Colorado Rockies, 7-6, on Tuesday night to push their lead in the National League West to 11/2 games over San Francisco.

The Rockies, who had their 10-game winning streak halted the night before, tumbled again, dropping them 31/2 games behind San Diego. They remain 31/2 games behind Atlanta in the NL wild-card race.

San Diego tweaked the lineup, inserting Aaron Cunningham into the leadoff spot, and he had three hits, including a double, and scored two runs.

Miguel Tejada and Ryan Ludwick each had RBI singles in the first.

David Eckstein's two-run double in the fourth staked the Padres to a 4-0 lead and they made it hold up despite a rally by Colorado.

Stairs added some insurance with his major-league best 22nd pinch-hit homer of his career.

Garland (14-11) snapped a three-game slide, allowing three runs - one earned - and four hits. He also went 2-for-2 with a walk and a double.

Dodgers 1, Giants 0

Barry Zito's winless streak reached a career-worst 12 outings and he lost his seventh straight game because of an error by Juan Uribe.

The host Giants, coming off a 7-3 road trip in which they took three of four in San Diego, dropped 11/2 games behind the first-place Padres in the NL West. The Giants remained 11/2 games behind Atlanta for the NL wild card.

Clayton Kershaw (12-10) pitched a four-hitter for his first career complete game and shutout.

Zito (8-13) lost his career-high seventh straight game.

Phillies 2, Marlins 1

Weary after throwing a career-high 127 pitches, Cole Hamels wanted to double-check his math and was relieved to be reassured his next start was six days away.

"Great," he said. "I need an extra day off."

Hamels had a season-high 13 strikeouts in 62/3 innings and the Phillies increased their lead in the NL East to two games over Atlanta.

Hamels (11-10) gave up three hits and a run in the first inning, then dominated. He said he felt strong even as his pitch count mounted.

Nationals 6, Braves 0

Livan Hernandez (10-11) homered and limited host Atlanta to five hits in eight innings.

The Braves fell two games behind first-place Philadelphia in the NL East.

Hernandez walked two, struck out six and hit a batter. Only one runner reached second.

The 35-year-old righthander varied his pitches from a 61-mph curve in the second inning to Derrek Lee to nothing faster than an 85-mph fastball.

Diamondbacks 3, Reds 1

Rookie Daniel Hudson (7-2) shut down the NL's top offense for eight innings, and rightfielder Justin Upton made a game-ending catch with the bases loaded in Cincinnati.

Hudson gave up four hits and fanned eight before leaving with a 3-0 lead. Juan Gutierrez let the Reds load the bases in the ninth with two outs, then hit Drew Stubb to force in a run. Ramon Hernandez followed with a liner toward the gap that Upton snagged while running full-speed and stretching as far as he could.

The Reds, however, maintained their seven-game lead over St. Louis in the NL Central.

Cubs 7, Cardinals 2

Randy Wells (7-13) allowed five hits in eight innings and had two hits and two RBIs to help the Cubs deny Adam Wainwright's bid for a 19th win.

Xavier Nady had three hits and three RBIs and Darwin Barney had three hits and an RBI in a 15-hit attack for the Cubs, who have outscored St. Louis 12-3 while taking the first two games of a three-game series.

Twins 9, White Sox 3

J.J. Hardy hit a go-ahead RBI double in the seventh inning and Denard Span had a three-run double in the eighth in Chicago.

Delmon Young homered and Joe Mauer had three hits for the AL Central-leading Twins, who increased their lead to seven games over the second-place White Sox with 18 games left for both teams.

The White Sox are 5-11 against the Twins this season.

Rangers 11, Tigers 4

David Murphy led off the fourth inning in Arlington, Texas, against Jeremy Bonderman with his 10th homer, a towering drive to rightfield that sailed over the area above the foul pole, with the ball finally glancing off the facing of the second deck.

Tigers manager Jim Leyland argued that the ball was foul, but he was overruled after the umpires went to video review.

Texas maintained momentum from a three-game weekend sweep of the Yankees, increasing its lead in the AL West over second-place Oakland to nine games and reducing its magic number to 10.

Murphy was credited with an RBI for the go-ahead run in the three-run sixth when his ground ball was bobbled for an error by second baseman Will Rhymes, with Elvis Andrus scoring from third to give Texas a 5-4 lead.

Nelson Cruz and Ian Kinsler added run-scoring singles off Robbie Weinhardt (1-2) later in the inning for a 7-4 lead.

Red Sox 9, Mariners 6

David Ortiz hit a go-ahead three-run homer in the eighth inning in Seattle.

- AP

More MLB news