SAN FRANCISCO (AP) -- Brandon Crawford's alert baserunning in the second inning gave the Giants an early lift. His long single in the 10th capped another walkoff win.

Crawford singled in Matt Duffy with two outs in the 10th inning, and the surging Giants beat the San Diego Padres 4-3 Wednesday for their 13th win in 14 games.

It was the fourth game-ending hit of Crawford's career and the major league-high fifth walkoff win this season by San Francisco.

More from FoxSports

"We're playing good baseball," Crawford said. "Really good pitching and defense, and found the bats a little bit these last couple of days. We're kind of putting everything together."

Duffy singled off Brad Hand (1-2) with one out, pinch-hitter Hunter Pence popped out, Duffy advanced on a wild pitch and Crawford hit a 1-2 offering over center fielder Jon Jay as Duffy scored standing up.

Crawford also singled and scored after some alert baserunning in the second inning. Duffy and Denard Span drove in runs for the NL West-leading Giants.

San Francisco completed a three-game sweep, extended its winning streak to five and improved to 9-0 against the Padres this season. The Giants' two walkoff wins in the series were against Hand.

"When you're having fun it makes it a lot easier to come to the park," Duffy said. "The big thing is it's saving the bullpen. We're keeping them from going prolonged extras which is a big thing, especially the way our starters have been going."

Last-place San Diego was swept for the fourth time this season.

Yangervis Solarte hit a tying, two-run homer off Josh Osich in the eighth, but the Padres stranded runners on the corners in the 10th and lost for the eighth time in 10 games.

"It's really frustrating to lose games like that," Solarte said through an interpreter. "I know we have the talent and the potential to come out of it."

George Kontos (1-1) retired two batters.

Giants starter Jake Peavy, who spent his first eight seasons with San Diego, allowed one run and six hits in 6 2/3 innings and left after Alexei Ramirez's RBI single in the seventh.

San Diego's James Shields gave up two runs and five hits in six innings with one walk.

Crawford singled with one out in the second and advanced to an open third base as Jarrett Parker grounded out to the right side of the shifted infield. Kelby Tomlinson followed with an RBI single.

Gregor Blanco tripled leading off the sixth and scored on Duffy's single. Alexei Ramirez's RBI single in the seventh and Solarte's then took a 3-2 lead on Solarte's first home run since Oct. 1.

STRANGE PLAY

Brandon Belt sprained his left ankle in the eighth while sliding into second base during a play that started with Brandon Crawford hitting a high popup in front of home plate. Catcher Derek Norris lost track of the ball as it fell to the grass, then fielded the ball and threw to second. Belt waited to see whether the ball fell in. then stumbled as he approached the bag and Ramirez, the Padres shortstop, dropped the throw from Norris. Belt overslid the bag, however, and was tagged out as he lay in the infield dirt. "He thought he was out, that's why he didn't try to crawl back to the bag," Giants manager Bruce Bochy said. "He didn't know (they) missed the ball. We're hoping for good news with him. We'll know more once we get to Colorado.

TRAINER'S ROOM

Padres: INF Will Myers (forearm) drew a leadoff walk as a pinch hitter in the 10th and was pulled for a defensive replacement in the bottom half.

Giants: Sergio Romo threw 16 pitches during a rehab appearance with Triple-A Sacramento. . Span was supposed to have the day off but came in as a defensive replacement in the top of the seventh. . Pence (hamstring) hopes to be in the starting lineup Friday at Colorado.

UP NEXT

Padres: LHP Christian Friedrich (0-1) is to start the series opener in Arizona on Friday. The former first-round pick by Colorado is winless since in the big leagues 2012.

Giants: RHP Matt Cain (1-5) is to start against the Rockies on Friday, attempting to win consecutive starts for the first time since 2013.