Brian McCann had four hits and two RBI for the Braves, who finished with 16 hits, two shy of their season high. Atlanta's run total was its highest since a 9-1 win over Philadelphia on Aug. 29.
"We did a lot of hitting," manager Bobby Cox said. "Everyone seemed to chip in with it."
Oswalt (8-6) gave up six runs and 10 hits -- matching a season worst -- in two innings, dropping to 0-3 with a 7.58 ERA in seven career starts against Atlanta.
"He left some pitches up, which he normally doesn't do," McCann said. "We were able to put some good swings on it. It was definitely something we needed to do."
The Braves had scored a total of 10 runs and batted .153 in their previous six games, but led 3-0 after 12 pitches.
Oswalt left his previous start with soreness in his back and departed the clubhouse without speaking to reporters after this one, but manager Cecil Cooper said the right-hander's back wasn't bothering him.
"It looked like the ball was coming out of his hand OK, but he was just having trouble getting his pitches where he needed them," Cooper said. "The back wasn't an issue. I went over to him and asked him about it, but he told me it was fine."
Lance Berkman hit a three-run homer for the Astros, who lost for the third time in Oswalt's last 13 starts.
"I wish I could do better than I did, but that is part of the game," said Tejada, who became the first Astros player to ground into three double plays. "I try to do good every day, but today was the kind of day where nothing was working out for me."
McCann ended an 0-for-20 slump with a single and Jones scored on Anderson's sacrifice fly to left.
Atlanta added three more in the second. McCann doubled in McLouth to give the Braves a 4-1 lead. Anderson and Adam LaRoche added RBI singles.
Tejada thought Oswalt's back must have been hurting, despite what he told Cooper.
"I was surprised to see the way he was," Tejada said. "He is one of those pitchers that just does not ever give in. We have to think he did what he did because of his back."
Derek Lowe (14-9) allowed five runs and nine hits in 5 2/3 innings, managing to win for the second time in five starts. The right-hander reached 14 wins for the sixth time in 13 seasons but is disappointed with his year.
"It's been kind of a struggle for me," Lowe said. "If it was a normal year, where you're a lot more consistent, then you can kind of settle down. But this is kind of how I've been pitching for so long. It's been a long season."
Berkman hit his 19th homer off the facade in left center in the third, cutting Atlanta's lead to 6-4. Umpires used instant replay to confirm the ball cleared the yellow line by about a foot.
The first baseman hadn't homered in 32 games, one shy of the longest drought of his career.
- Atlanta reached 10 hits for the first time since an 8-7 loss to Florida on Sept. 2.
- McLouth has three leadoff homers this season and six in his career.
- Houston 3B Geoff Blum was out of the lineup after bruising his left shin and spraining his left ankle sliding into second base on Wednesday. "We'll give him a few days," Cooper said. Chris Johnson, whose minor league contract was purchased on Monday, made his first major league start in Blum's place.
- Berkman has 307 career homers, sixth all-time among switch hitters.