Ruiz was ready when the next pitch came in the same location.
With Brian Schneider starting behind the plate, Ruiz sat out the first six innings. He still set his career high for RBI with his slam in the seventh and run-scoring double in the eighth.
Ruiz hit the homer on an 0-2 pitch from Linebrink.
"I told myself, 'Just use your hands,' and it was right there, the same pitch," Ruiz said.
Ruiz drove in another run with the double off Cristhian Martinez in the eighth.
Five RBI on only two at-bats?
"I'll take it," Ruiz said.
Oswalt (2-0) gave up five hits and two runs, one earned, in six innings. The Braves were the only National League team Oswalt had not beaten in the regular season.
With temperatures in the 80s, Oswalt wore down in a long sixth inning but said he enjoyed the heat and humidity.
"With heat, you get humidity," he said. "You can feel the ball better. You can spin the ball better."
"It's a good lineup, a real good lineup," Oswalt said. "This is a lineup that can beat you all the way down."
Oswalt and three relievers combined to allow only six hits.
"We'll take our butt-kicking today and go out and try to win the series tomorrow," said Atlanta's Chipper Jones.
Schneider gave the Phillies a 3-2 lead with his two-run homer off Brandon Beachy (0-1) in the fourth. The Phillies had 15 hits, including eight for extra bases.
"We were swinging good today," said Phillies manager Charlie Manuel. "The catchers were swinging good."
Mayberry had a pinch-hit single off George Sherrill, who then walked Valdez.
"That seventh kind of didn't go the way we planned," said Braves manager Fredi Gonzalez.
Shane Victorino, who had four hits, singled off Martinez in the eighth to drive in Ruiz.
Beachy is still looking for his first win after giving up seven hits and four runs in six-plus innings. The rookie right-hander has made five career starts, including three against the Phillies.
The Braves scored two in the third. Alex Gonzalez doubled to right and scored on Freddie Freeman's single. Beachy pushed Freeman to second with a sacrifice. Martin Prado followed with a single to right that Francisco bobbled for an error, allowing Freeman to score.
Atlanta's 2-1 lead didn't last an inning. With two outs in the fourth, Ibanez walked, and Schneider followed with the homer about 10 rows deep in the right-field stands.
Oswalt pitched out of a jam after loading the bases with two outs in the sixth. Oswalt gave up a single to Jones before walking Brian McCann and Uggla. Jason Heyward's broken-bat pop-up to third baseman Placido Polanco ended the inning.
Oswalt was 0-3 with a 6.21 ERA against Atlanta in nine games, including eight starts, with Houston and Philadelphia before Saturday. David Herndon, J.C. Romero and Danys Baez combined for three scoreless innings behind him.
Ruiz drove in four runs three times, most recently on Sept. 13, 2010 at Florida.
- The double by Gonzalez in the third inning was the 300th of his career. He added another double high off the left-field wall in the fifth.
- Oswalt singled to right field in the fifth and was thrown out by Heyward trying to advance to second base.
- Manny Ramirez's retirement leaves Jones as the active leader with 207 game-winning RBI.