SAN DIEGO -- It took the most unlikely of scenarios for the San Diego Padres to keep their winning streak alive.
The 5-foot-7 Eckstein connected for his first home run on a 1-1 fastball from Jeremy Affeldt to help the Padres overcome Heath Bell's first blown save.
Eckstein has 35 career home runs in 4,641 at-bats over nine-plus seasons.
"Definitely was not expecting that," Eckstein said. "I was disappointed in my prior three at-bats. My focus was on trying to hit a line drive."
Eckstein succeeded in hitting the ball hard off the left-handed Affeldt (2-2) as his home run just stayed inside the left-field foul pole that is attached to the corner of the brick Western Metal Supply building.
"That was the only part of the park I can hit it out of," he said. "Probably 95 percent of my homers are hit there. Usually when it happens, it's the farthest thing from mind."
Padres manager Bud Black, who managed Eckstein last year in the second baseman's first season with the Padres, was the pitching coach with the California Angels during Eckstein's four seasons with that club. Black said he is never surprised with anything Eckstein does.
"Eck can do a lot of things on the baseball field," Black said. "We've seen him do some great things for us. That was one of them."
Said San Francisco starter Matt Cain: "You think he's going to hit a bunch of balls to right. Then, if you throw a pitch kind of down and in, he's capable of pulling it and that's what he did."
Eckstein's heroics helped overcome Bell blowing his first save in four chances when Juan Uribe hit a hanging 3-2 curveball into the left-field stands with one out that tied the game at 2.
Eckstein, who is batting .279 as the Padres' No. 2 hitter, has yet to strike out in his first 47 plate appearances, the longest current streak for any major leaguer.
"I missed my location and obviously Eckstein has the capability to turn on a pitch," Affeldt said. "I kind of put it right there on the inner half, where I didn't want it and he made me pay for it."
Tim Stauffer (2-0) pitched the 10th.
At 7-6, San Diego is above .500 for the first time since May 27 when it was 24-23.
After back-to-back singles by Uribe and Andres Torres to lead off the seventh, they advanced on a sacrifice bunt by Nate Schierholtz before Gregerson replaced Richard and struck out pinch-hitter Mark DeRosa and Eugenio Velez.
Richard allowed one run and seven hits with five strikeouts and one walk.
Gonzalez staked the Padres to a 1-0 lead in the first inning and Venable put San Diego ahead 2-1 in the sixth following Kyle Blank's leadoff triple.
Cain gave up two runs and seven hits over six innings. The right-hander is 1-6 in 14 career starts against the Padres, including an 0-4 record in his past seven starts at Petco Park, during which he received only five runs of support.
- Richard nearly was credited with a home run in the fourth, but it was a ground-rule double.
- Padres 3B Chase Headley barely got out the way of the splintered barrel of Uribe's bat in the fourth inning. Uribe hit a foul ball toward the stands down the third-base line. His bat splintered and the barrel flew right at Headley, who reacted at the last second and ducked as the bat went over his head.
- DeRosa pinch hit after missing Sunday's game at Los Angeles with tightness in his right hamstring.