PHOENIX -- Leesburg's Buster Posey is hitting nearly everything thrown to him, and he's so good at going the other way he almost appears to be taking the ball out of the catcher's glove.
Even teammate Tim Lincecum, known for freakish exploits of his own, is dazzled by the rookie's run that has carried the Giants toward the top of the NL West.
"Buster is pretty ... talented," Lincecum said. "I don't know any other way to say it."
Posey had four hits to extend his hitting streak to 18 games -- while pushing his batting average to a team-high .371 -- and set up Travis Ishikawa's run-scoring single in the 10th inning, helping the San Francisco Giants beat the Diamondbacks, 3-2, on Sunday to complete their first four-game sweep in Arizona in nine years.
Posey matched his career high in hits and drove in two runs against the Diamondbacks to pass Orlando Cepeda for the second-longest hitting streak by a Giants rookie, just four behind Willie McCovey's 1959 record. He's hit .479 in July to raise his season average to .371 and has 24 RBIs to tie Jim Ray Hart's team rookie record for a month, set in 1964.
Posey started the winning rally against the Diamondbacks with his second double before being replaced by pinch-runner Eli Whiteside. Whiteside then scored easily on Ishikawa's single off Esmerling Vasquez (1-3) that gave the Giants their first four-game sweep in Arizona since July 26-29, 2001.
Brian Wilson pitched a perfect 10th for his 29th save in 31 chances, helping the Giants stay within three games of San Diego in the NL West after their 16th win in 20 games.
"It's always fun when you're winning," Posey said.
Arizona made a big trade during the game, trading All-Star right-hander Dan Haren to the Los Angeles Angels.
The last-place Diamondbacks were looking to move Haren's big contract ahead of the July 31 non-waiver trading deadline and picked up a starter, two prospects and a player to be named later.
In return for the three-time All-Star, Arizona acquired left-hander Joe Saunders and right-hander Rafael Rodriguez, along with minor leaguer Patrick Corbin, from the Angels. Haren has averaged 15 wins over the past five seasons and is 7-8 with a 4.60 ERA in 21 starts this year. He was tied for the NL lead with 141 strikeouts through Saturday's games.
On the field, Justin Upton had three hits to extend his hitting streak to 12 games, but the Diamondbacks couldn't capitalize on good scoring chances in the final to two innings.
In the ninth inning, Arizona had runners on the corners with one out, only to spoil with strikeouts by Cole Gillespie and Chris Young off Sergio Romo (3-3).
Lincecum made a similar escape in the eighth, getting Adam LaRoche to hit a too-shallow fly to left and a double play when third baseman Juan Uribe snared Miguel Montero's liner and doubled off Upton at first.
The player the two-time NL Cy Young winner had the most trouble with was Diamondbacks pitcher Barry Enright, who had one career hit before Sunday.
The rookie knocked San Francisco's ace for a two-run double for his first extra-base hit and added a single in the fifth.
Lincecum was dynamite against everyone else.