Rodriguez (5-2) allowed six hits and struck out five to win his fourth straight decision and drop his ERA to 1.83.
"Every start, I just think, 'Make a good pitch every time,'" said Rodriguez, who threw 110 pitches. "I think about, 'Let me throw my first pitch for a strike.' Every time, every inning. I'm feeling good about it."
Lance Berkman had an RBI double and Rodriguez drove in his first run of the season as the Astros set aside an embarrassing lineup error to hand Milwaukee just its third loss in 16 games.
The Astros are seeing the 30-year-old Rodriguez mature before their eyes after coming into the season with a 37-40 record over four seasons.
"Now, he knows who he is and that's why, every time he takes the mound, he thinks he's going to win," Tejada said. "Every time he takes the mound, we think we're going to win."
Oswalt, the Astros' longtime ace, is 1-2 with a 4.50 ERA this season.
The Astros got caught batting out of order in the first inning and still took a 1-0 lead.
Michael Bourn led off with a single, but the Astros had submitted a lineup card with Kaz Matsui batting first and Bourn second. Houston manager Cecil Cooper said before the game that Bourn would lead off, a flip-flop from Tuesday's game.
Cooper took the blame, saying that neither he nor any of his coaches double-checked Wednesday's lineup card before it went to the umpires.
"I put it in my pocket without checking it. Usually, I check it every day," Cooper said. "Today, for some reason, I did not check it. No one checked it, and that was a snafu."
Milwaukee manager Ken Macha alerted the umpires to the mistake and Bourn's hit was nullified and Matsui was called out without leaving the on-deck circle.
"It happened, it is embarrassing, but it's over," Cooper said. "If we had lost the game, it would be even more so. But we won the game. That's the most important thing."
Macha said he might not have said anything if the Brewers had retired Bourn and Matsui at the start. Bourn batted again, drew a walk and scored on Berkman's double to right center.
Tejada hit a solo homer in the second inning, his third of the season. Tejada came in hitting .417 in his last 10 games.
Pence put Houston up 4-0 in the third with a triple over Cameron's head in center field.
Cameron led off the fourth with a homer down the left-field line. It was the first allowed by Rodriguez since August 2008, a span of 15 starts and 88 1/3 innings. Cameron's drive ended the longest homer-less streak for an Astros pitcher since 1989-90, when Juan Agosto went 91 2/3 innings without giving up one.
Rodriguez retired the next 10 hitters, striking out the side in the fifth.
"He's becoming, every day, the guy we thought he could be," Cooper said. "I'm so happy for the performance that he has been able to consistently go out and give us. It's been outstanding."
Tejada drove in another run with a double in the sixth -- his 13th RBI in his last nine games -- and Seth McClung relieved Gallardo.
Rodriguez singled to right, his first hit of the season, scoring Tejada.
- Brewers 2B Rickie Weeks underwent surgery on his left wrist in Arizona on Wednesday. Weeks is out for the season after tearing a tendon while batting in St. Louis on Sunday.
- Members of the NFL's Houston Texans took batting practice at Minute Maid Park and raised $31,300 for the Boys and Girls Clubs of Greater Houston. Receiver Andre Johnson, quarterback Matt Schaub and offensive lineman Eric Winston were among the participants.