Lincecum (5-0) struck out five and walked five but out-dueled Astros ace Roy Oswalt (2-5) in a rematch of hard-throwing righties from opening day.

Brian Wilson relieved Lincecum after the eighth and earned his eighth save in nine chances. But not before he loaded the bases and needed 15 pitches to retire Kaz Matsui on a game-ending flyout.

Lincecum earned his first win since April 23 following three straight no-decisions in which the two-time reigning NL Cy Young Award winner left with the lead.

The 32-year-old Oswalt, who began the day with the third-lowest run support in the National League at 2.44, lost his third straight decision despite seven strikeouts and no walks in seven innings. He allowed six hits.

At Cincinnati, Orlando Cabrera made a strong relay throw to the plate to nail Skip Schumaker for the final out, preserving Cincinnati's victory in baseball's Civil Rights Game.

Schumaker, who hit an RBI single to get St. Louis within one, tried to score when Joe Mather doubled to left. Rookie Chris Heisey, inserted for defensive purposes, got to the ball quickly when it died against the wall and threw to shortstop Cabrera, whose throw was to the foul side of the plate but fast enough for Ramon Hernandez to get over for the tag.

Drew Stubbs hit a two-run triple in the sixth inning, foiling St. Louis' strategy to pitch to him, and rookie right-hander Mike Leake (4-0) remained unbeaten. Francisco Cordero pitched the ninth for his 12th save.

Adam Wainwright (5-2) gave up a season-high four runs in six innings.

At San Diego, Clayton Kershaw threw seven strong innings against the first-place Padres in a victory that extended Los Angeles' winning streak to six.

James Loney homered and Russell Martin hit an RBI single for Los Angeles, which has won 11 of 14 and is two games above .500 for the first time this year. Garret Anderson had a run-scoring triple and Jamey Carroll an RBI single.

Kershaw (3-2) held the Padres to three hits, struck out seven and walked two. The left-hander started the Dodgers' winning streak last Sunday by beating Colorado 2-0.

Jonathan Broxton pitched the ninth for his sixth save in eight chances.

Padres right-hander Kevin Correia (4-3) started a week after his younger brother, Trevor, died after falling from a cliff while hiking on Santa Cruz Island. Correia went 5 1-3 innings, allowing four runs and five hits.

At Miami, Cameron Maybin equaled a career high with three RBIs as Florida earned its season-best third consecutive win.

The Marlins finished with 12 hits and had help from John Maine, whose first 12 pitches were balls. Maine (1-3) lasted five innings but gave up six runs, increasing his ERA to 6.13.

The Mets (18-19) fell below .500 for the first time since April 24 and matched their longest losing streak of the season with their fourth consecutive defeat.

Nate Robertson (4-3) allowed three runs, two earned, in 5 2-3 innings for Florida. Leo Nunez pitched the ninth for his eighth save in 10 chances.

Hanley Ramirez had three hits, scored twice and drove in a run to help the Marlins (19-18) climb above .500.

At Milwaukee, Shane Victorino homered and drove in four runs, powering Philadelphia to the victory.

Staked to a 9-2 lead after Victorino's two-run drive in the sixth inning and Philadelphia's five runs off reliever Claudio Vargas in the seventh, Joe Blanton (1-2) and the Phillies' bullpen made it interesting.

Corey Hart's three-run shot in the seventh cut it to 9-5.

Milwaukee pushed another run across in the ninth and loaded the bases, but 38-year-old Jose Contreras earned his first career save by striking out the final two batters.

The Brewers also got homers from Prince Fielder and Alcides Escobar, but dropped to 4-13 at Miller Park.

At Chicago, Jeff Clement homered in the ninth inning and Octavio Dotel escaped a jam in the bottom half to lead Pittsburgh to the win.

Dotel walked Starlin Castro with one out and surrendered an RBI triple to Kosuke Fukudome. With Fukudome on third and the infield in, Dotel struck out Ryan Theriot and Marlon Byrd for his seventh save in nine opportunities.

At Atlanta, Justin Upton and Kelly Johnson homered to help Arizona snap a seven-game losing streak.

Upton's sixth homer made it 1-0 in the first and his RBI triple in the fifth gave the Diamondbacks a 5-0 lead.

Tommy Hanson (3-3) lost for the first time in four starts.

He allowed five runs and seven hits with 10 strikeouts and no walks in seven innings.

At Denver, Ian Desmond's throwing error in the seventh inning allowed Paul Phillips to score the go-ahead run, helping Colorado complete a doubleheader sweep.

Ubaldo Jimenez threw eight stellar innings for the Rockies in the opener, and Carlos Gonzalez and Seth Smith hit back-to-back homers in the second game.