ATLANTA -- While Randy Winn is a newcomer in San Francisco, he's very familiar with Tim Hudson.
For Winn, it was his first homer and first RBI since being acquired by the Giants from Seattle on July 30.
"It was nice to finally get a hit and drive someone in," he said. "I wasn't trying to hit a home run. I was just trying to get the guy in."
Hudson, in his first season with the Braves, has plenty of history against Winn. They faced each other for years in the American League, where Hudson pitched for Oakland and Winn played for Tampa Bay and the Mariners.
Winn used that knowledge to his advantage when Hudson tried to sneak a fastball over the inside corner on a 1-2 pitch.
"It was about 5 inches off the plate, but he cheated in," Hudson said. "He guessed right and didn't miss it."
One night after scoring three runs off John Smoltz in the ninth -- only to lose 5-4 in the 12th -- the Giants made this comeback stick.
Hudson (8-7) cruised through the first six innings, striking out a season-high 10 while the Braves built a 3-1 lead. But San Francisco dealt him the loss with a three-run seventh.
"Tim was throwing the ball really well," Winn said. "He was holding us down. We did a good job of not giving up. We got some clutch hits down the stretch."
Edgardo Alfonzo and J.T. Snow led off the seventh with consecutive singles, and Mike Matheny moved them along with a sacrifice bunt. Pinch-hitter Lance Niekro grounded out to short, driving in Alfonzo, and Hudson was within one strike of escaping with the lead intact.
But he couldn't get by Winn.
"It's just one of those things," Hudson said. "You can't let it drive you crazy. I know I threw a lot better than what shows on the scoreline and the 'L' beside my name."
Jason Schmidt (9-6) gave up eight hits and three runs in six innings to beat his original team. Tyler Walker pitched the ninth for his 20th save.
"My location wasn't working, and my breaking ball wasn't quite there," Schmidt said. "But the offense picked me up."
Atlanta's Marcus Giles, who drove in the winning run Wednesday, stretched his career-best hitting streak to 15 games, falling a homer short of the cycle.
Giles tripled off the center-field wall in the third to break a 1-all tie and came around to score in the fifth after doubling with two outs. He also singled in the seventh, putting two runners on with no outs, but the Braves couldn't take advantage.
Andruw Jones popped out and Adam LaRoche hit into a double play, ending Atlanta's best chance to reclaim the lead. The Braves had 10 hits but stranded nine runners, going just 3-of-12 with runners in scoring position.
"Hudson pitched one heck of a game," Schmidt said. "One of his pitches went out of the park and mine went off the wall. That was the difference."
Giles had a chance for the cycle but struck out to end the game.
"I was just trying to get on base," he said. "There's nothing worse than making the last out of the game. It's embarrassing."
Matheny drove in San Francisco's first run with an RBI single in the second. Hudson didn't have any more trouble until the seventh, retiring 13 of the next 15 hitters.
Snow padded the Giants' lead with a two-out, run-scoring single in the eighth.
The Giants still lost two of three at Turner Field and haven't won a series in Atlanta since May 1993 -- the same year the Braves won a memorable race between the teams in the NL West.
"I don't want to say this is no big deal, but it's no big deal," Giles said. "We've got a long homestand ahead of us (nine more games) and we've just won two of three to get it started."
Braves 3B Chipper Jones played for the first time in nine days, striking out as a pinch-hitter in the eighth. He's been sidelined with a rotator cuff strain. ... Giants 2B Ray Durham left after the sixth because of cramping. ... Hudson was one shy of his career high for strikeouts. ... San Francisco is 11-25 in Atlanta since Turner Field opened in 1997. ... Braves OF Brian Jordan, beginning a rehab assignment at Class A Rome, went 1-for-3 with a homer. He had been out more than a month with an ailing knee. ... Winn had six homers for the Mariners. ... Braves OF Jeff Francoeur went 0-for-4, ending an 11-game hitting streak.