Ivan Rodriguez had four hits for Houston, which set season highs for runs and hits (16) while completing a sweep of the weekend series. It was the Astros' first sweep since taking four from Pittsburgh last September.
Oswalt (1-2) gave up four runs and six hits in six innings. He ended a streak of five consecutive no-decisions, the longest of his career.
Josh Geer (0-1) lasted only three-plus innings for San Diego. Geer, who played college ball at nearby Rice, gave up seven runs, five earned, and seven hits.
The Astros scored in three of the first four innings to build a 9-2 lead. Tejada hit a two-run homer in Houston's three-run first and drove in two more with a single in the second. Lee hit an RBI double in the fourth and Rodriguez tripled in a run.
Chase Headley and Adrian Gonzalez each hit a two-run homer for the Padres, who have lost 10 of 12. Shortstop Chris Burke's error in the fourth allowed two runs to score.
Lee and Rodriguez homered in the eighth to finish the scoring. Lee's two-run shot was his sixth of the season and Rodriguez's solo drive was his fourth.
Notes:@ Padres 2B David Eckstein left in the fifth inning with a bruised left rib. He was hit by a pitch from Oswalt in the fourth. The club said Eckstein is day to day. ... Houston slugger Lance Berkman missed his third straight game with a sprained left wrist. It was the first time Berkman has missed three straight games since May 15-17, 2006, when he was out with a sore left hamstring. ... Padres RHP Cha Seung Baek (strained right forearm) left a rehab appearance with Triple-A Portland with right elbow soreness. He will fly back to San Diego to be examined by team doctors. ... Since April 17, Padres starters are 0-9 with a 5.01 ERA in 22 games. San Diego is 6-16 in that span. A Padres starter has not won since Jake Peavy beat the Mets 6-5 on April 16 at New York.