SAN FRANCISCO (AP) -- Andres Torres hit a ground-rule single with the bases loaded and one out in the bottom of the 10th inning to lift the San Francisco Giants to a 10-9 victory over the Florida Marlins on Wednesday night.
The Giants hit three straight one-out singles off Florida reliever Clay Hensley before Torres hit a long fly ball over the Marlins' drawn-in outfield. The ball hit on the warning track then bounced over the fence.
Juan Uribe matched his season-high for the Giants with three hits and four RBIs while Buster Posey extended his hitting streak to 21 games, longest in the majors.
Ronny Paulino, Donnie Murphy and Dan Uggla homered for the Marlins, who overcame deficits of 7-1 and 9-2 to force extra innings.
Torres, who hit a two-run home run that landed in the waters of McCovey Cove in the sixth inning, had four hits to lead the Giants, who had 17 hits and won for the 17th time in 21 games.
Aubrey Huff singled twice to surpass 1,500 hits for his career while Aaron Rowand and Edgar Renteria added two hits apiece.
Much of the attention in San Francisco these days has been centered around Posey, the Giants' young catcher who has been a smashing hit since being called up from the minors on May 29. Posey is on the verge of breaking numerous franchise rookie records and has been one of the top hitters in the majors since joining San Francisco.
Posey's streak is one shy of the Giants' rookie record of 22 set by Hall of Famer Willie McCovey in 1959.
Uribe has been just as critical for the Giants, who have trimmed four games off San Diego's lead in the NL West since July 3.
He hit a tiebreaking home run leading off the eighth inning in Tuesday's 6-4 win over the Marlins, then came up big again Wednesday.
Uribe had a two-run single in the first then drove in two more with a triple in the third. He also beat out an infield single in the fifth. Over his last 11 games, the veteran infielder is batting .356 (16 for 45).
Chris Ray (4-0) pitched the 10th for the win.
Jonathan Sanchez earned a fourth straight no-decision despite leaving with a 9-5 lead. The left-hander, who hasn't won since July 5, allowed five runs and seven hits.
Sanchez gave up an RBI double to rookie Logan Morrison in the third -- Morrison's second hit in the big leagues since being called up Tuesday -- and a solo home run to Paulino in the fourth. Murphy hit a pinch-hit three-run homer off Sanchez in the sixth to cut San Francisco's lead to 9-5.
Uggla hit a two-run shot off reliever Denny Bautista in the seventh to make it 9-7. Uggla's homer, his sixth in six games, tied the franchise career record of 143 set by Mike Lowell. It came after a wild pitch with two outs and two strikes allowed Gaby Sanchez to reach base.
The Marlins then scored twice off Giants closer Brian Wilson in the ninth to tie the game. Sanchez had an RBI groundout while Uggla hit a ground-rule double to drive in pinch-runner Emilio Bonifacio.
Florida's Alex Sanabia was shelled in his fourth major league start. The right-hander lasted two innings and was tagged for seven runs and nine hits.
Notes: The Giants are 18-5 since July 3, the best mark in the majors. ... Wilson was fined $1,000 earlier Wednesday by MLB for wearing bright orange cleats during Tuesday's game. Wilson took the shoes -- a gift from Nike that were presented to him at the All-Star game -- and partially colored them in with a black marker before Wednesday's game. ... Posey needs one RBI to break the franchise rookie record for one month. He currently has 24, tied with Jim Ray Hart (1964). ... This is the first time the Marlins have lost consecutive games since July 2-3. ... San Francisco is 5-1 against Florida this season.