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.
Swim Week Miami Beach 2014 [PHOTOS]