Rodriguez, who missed time during Spring Training with an oblique strain, gutted out five innings and allowed four runs on eight hits. He struck out six and walked just one, but did give up two home runs, including a two-run shot to Adrian Gonzalez.
"I was a little worried about him because of the layoff," said Astros manager Cecil Cooper. "We were trying to push him as far as we could."
Rodriguez, the 29-year-old lefty who has shown flashes of brilliance in his first three seasons, threw 95 pitches, 61 for strikes.
He gave up his four runs in the second and third innings, but threw a perfect fourth with two strikeouts. And in the fifth, he got out both Scott Hairston, who earlier homered and Khalil Greene, after yielding a one-out double to Gonzalez.
"I thought he threw the ball OK," said Cooper. "He didn't really have the good bite with the curveball. He didn't use the changeup much tonight, and that's something we're going to work on. I'm very pleased. He had two or three good innings where he kind of bounced back. They hit him around a little bit, but he still bounced back. It's just a step forward for him."
"I felt very good," said Rodriguez. "The first three innings I hung the curveball, but the last two were better."
As for the oblique, "I felt perfect."
Rodriguez was 9-13 last season with a 4.58 ERA, He had the best home ERA among National League starters at 2.94, but struggled on the road with the highest ERA away from home at 6.34. However, he was 2-1 with a 2.84 ERA in his last four road starts last season.
Rodriguez will pitch the home opener for the Astros on Monday against the Cardinals at Minute Maid Park, where he went 6-3 last season.
Sandy Burgin is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.