"I had to kick it up in high gear," Bell said.
He began by striking out Pirates first baseman Adam LaRoche with a 95-mph fastball. Bell then got third baseman Doug Mientkiewicz to line out to center, and then appeared to have struck out pinch-hitter Jose Bautista on a 3-2 curveball but home-plate umpire Dana DeMuth called the pitch high, resulting in a run and bringing the Pirates within one run.
"I was pretty sure I was going to fool him there," said Bell, who shook off catcher Josh Bard's two consecutive fastball signs. "I got him to flinch but, unfortunately, I got the umpire to flinch too."
But Bell regrouped and got shortstop Jack Wilson to pop out. Closer Trevor Hoffman than completed a 1-2-3 ninth to give the Padres just their 16th road victory of the year
"They've been few and far between," manager Bud Black said with a sigh. "They're all good at this point."
The Padres created another break for themselves in the sixth.
San Diego has just taken a 5-2 lead in the sixth inning, but the Pirates came back in the bottom of the inning on RBI singles by Mientkiewicz and Chris Gomez.
On Gomez's bloop hit to right field, Mientkiewicz tried to take third but was thrown out by second baseman Edgar Gonzalez and then third baseman Kevin Kouzmanoff threw out Gomez at second, after the Pirates' pinch-hitter tried to stretch his single into extra bases.
"Unusual, but big," Black said of 4-5-6 double play. "They had a little momentum there. I liked how we reacted. We had some awareness on the field, which I think is a positive for our guys. That was a momentum shifter."
The Padres got a second consecutive solid start from Cha Seung Baek, who gave up four runs on seven hits in 5 1/3 innings. His only blemishes came on two pitches to LaRoche, who sent both offerings to the right-field seats for his 13th and 14th home runs of the season.
"I thought Cha battled," Black said. "He had a nemesis in the first baseman, LaRoche. Cha got some pitches up in the zone. [LaRoche] took advantage of that. Overall, I think he deserved the win against a team that is swinging the bats well. I'm glad he got it."
In response to LaRoche's home runs, San Diego's offense took care of Pirates starter Zach Duke. They got to the young lefty early and often.
Bard, making his first start behind the plate since coming off the disabled list on Thursday, singled in Chase Headley to begin the scoring in the second. Adrian Gonzalez then put the Padres up 3-1 with a two-run homer in the fourth before LaRoche made it a one-run game with his second home run.
"We got a couple breaks, also, which we haven't been getting," Black said. "When you make contact, things happen. You put the ball in play and you never know what will happen."
Kouzmanoff, who has now hit safely in 10 of his last 11 games, then brought in Brian Giles, who had two doubles in the game, with the winning run in the seventh.
"I think the difference tonight was we got some timely hitting," Headley said. "We got some RBIs in some big situations. For the most part, we get some hits here and there but it's been hard for us to put anything together in the same inning."
"I think it's more frustrating with this team because we're a lot better than our record shows," Bell added. "We're in every single game. We're just not getting any breaks whatsoever. It's been that way all year wrong. We've been trying to battle through it. Unfortunately, it's just been happening that way."