SAN DIEGO -- Rookie Mike Thompson kept the San Diego Padres close enough to make another rally, then got sent back to Triple-A Portland.
The demotion following the Padres' 7-4 win over the San Francisco Giants on Saturday had nothing to do with Thompson's performance. It was to make room for Woody Williams, who came off the disabled list to start the second game of the split doubleheader.
The first game was the makeup of a rainout on April 4.
Thompson didn't get the decision, but he did go 3-2 with a 4.30 ERA in nine starts while Williams was on the DL with a torn calf muscle, including winning his first two starts.
"No question he has saved us," manager Bruce Bochy said. "For Mike to come up and pitch the way he has, and compete the way he has, this kid's done a terrific job. He keeps his composure. I think he's shown he can pitch here."
Adrian Gonzalez and Rob Bowen each hit a two-run single in the seventh and San Diego rallied for the second straight game. Trailing 3-2, the NL West-leading Padres scored four runs in the seventh on three walks and three singles.
On Friday night, they trailed 4-0 before winning 6-5.
Thompson knew there was nothing he could do to keep from being sent back to the minors, where he's spent the previous seven seasons.
"I'm glad I gave the team the majority of chances to win when I was playing," he said. "I did fairly well enough for them to consider me next time."
And his impending departure didn't affect the way he pitched.
"I was so ready to play the Giants," he said. "I always wanted to face Barry Bonds."
Bonds went 0-for-1 with two walks and a run, and Thompson hit the slugger on the shoulder with a pitch in the fifth inning, which drew a warning for himself and both dugouts.
Giants manager Felipe Alou came out and spoke with plate umpire Ron Kulpa after the warning.
It wasn't intentional, said Thompson, who also hit Kevin Frandsen in the second.
"It was a cut fastball. I swear to God it was," Thompson said of the ball that hit Bonds. "You can look - it was 84."
He said whoever was running the scoreboard showing the pitch and the velocity "got me in trouble, because it was a cut fastball, or slider, not fastball. That's probably why Felipe saw 'fastball' and got mad.
"If somebody's hitting hit me with an 84-mph pitch, I would say, 'Thanks.' If it's 95, that's another story," Thompson said. "Just bad location, tried to get it in and there was no way for him to get out of the way."
Thompson allowed three runs and five hits in 6 1/3 innings, struck out four and walked three.
Giants rookie Brian Wilson (0-2), recalled earlier in the day to replace the injured Tim Worrell, walked the bases full with two outs in the seventh and fell behind 3-0 against Gonzalez. The left-handed Gonzalez singled to left on a 3-1 pitch to bring in Mike Cameron with the tying run and Brian Giles with the go-ahead run.
"He's got good stuff, but he's a kid," Alou said. "He started off with good stuff but then he got wild."
Wilson came on while the Beach Boys' "Good Vibrations" was playing after the seventh-inning stretch, but the vibe turned bad.
"Things were going well, then they didn't," he said. "Maybe the thing that went wrong was the mental game. When things get out of hand, you have to be in the mindset to get out of it, and I didn't."
Kevin Correia relieved and allowed two more singles, including a two-run base hit by Bowen over the reach of second baseman Frandsen. Bowen was pinch hitting for pitcher Jon Adkins (1-1), who got two outs to get the win.
Gonzalez had three RBI. Rookie Josh Barfield added a solo homer in the eighth, his fifth. Trevor Hoffman pitched the ninth for his 20th save in 21 chances.
The Giants wasted rookie Matt Cain's career-best 11 strikeouts. Pedro Feliz homered for the second straight game and rookie Eliezer Alfonzo drove in three runs.
Cain surpassed his 10-strikeout performance from June 19, when he carried a no-hitter into the eighth inning against the Angels.
San Diego pulled to 3-2 in the sixth when Mark Bellhorn drew a leadoff walk, took third on Josh Bard's one-out single and scored on Gonzalez's grounder.
Alfonzo hit a two-run single in the second, and Feliz's homer with two outs in the fifth made it 3-1. It was Feliz's 12th drive. Alfonzo had a sacrifice fly in the eighth.
- Bonds played even though he fouled a ball off his right ankle on Friday night.
- Worrell was put on the 15-day DL with a bulging disc in his neck. The move was retroactive to Wednesday.
- This is Wilson's third time up with the Giants this season.