Lee was 3-for-4 and scored two runs for the Astros, who have won six of eight after starting the season 0-4.
Craig Biggio's two hits gave him 2,944 for his career and moved him past Frank Robinson for 30th place on the all-time list.
Roy Oswalt (3-0) picked up his ninth straight win dating back to last season, scattering six hits and a run through 6 1/3 innings. He also struck out seven.
Hanley Ramirez's leadoff home run to start the game accounted for the only run for the Marlins, who have lost five of their last six games.