The young Astros left-hander allowed a run and six hits while striking out seven without a walk.
Rodriguez went 7 2/3 innings for the longest outing of his career. He retired 11 in a row from the second through fifth innings as he won for the fourth time in seven starts since May 13.
"I might have to say that was the best he's ever pitched for me," Garner said. "I thought he was in complete control of the game. He had a great tempo and he used both sides of the plate. And pitching against a good-hitting team, he just went right after them."
Rodriguez (4-6), who is 23-26 in 59 career starts, agreed.
"It was the best I've ever pitched," he said. "My concentration was good and my location was good. Everything worked out."
The Mariners, who lost their third straight after winning five in a row, couldn't argue.
"He changed speeds well throughout the game," manager Mike Hargrove said. "We hit some balls hard, but they made the plays."
Even Willie Bloomquist, who had an inside-the-park home run, agreed.
"He had a sneaky fastball and kept us off balance," Bloomquist said. "He spotted it inside and outside. He worked the plate really well, made good pitches."
Bloomquist inside-the-park homer narrowed the score to 2-1 in the sixth inning. He hit the ball deep to center field and Hunter Pence missed the catch after a long run. The ball rolled up the hill in center field and Pence relayed it to shortstop Mark Loretta, whose throw home was late. It was Bloomquist's first home run of the season.
"I was just hoping (Pence) wasn't going to run it down," Bloomquist said. "I had no idea where the ball was. I just kept running."
The Astros tied a season high with 16 hits.
Lamb's double to left field drove in Mark Loretta for the game's first run in the second inning.
Lamb's two-run homer in the sixth went over the right-field fence and gave Houston a 4-1 lead. It was his fourth of the season.
Biggio's RBI double in the eighth gave the Astros their fifth run.
Felix Hernandez (3-4) allowed four runs and a career-high 12 hits in six innings. Hernandez, who struck out six and walked one, is 0-2 with two no-decisions since winning May 25 at Kansas City.
- The inside-the-park homer was the second in Minute Maid Park history. The first was by Adam Everett, Aug. 6, 2003, against the Mets. It was the 22nd inside-the-park homer by a Mariner and the sixth on the road.
- Lamb tied his career high with four hits. It was his fifth four-hit game.
- Ichiro Suzuki's hit in the sixth inning gave him a 10-game hitting streak. It's the 24th 10-game hitting streak of his career, the most by an active major leaguer.
- Biggio's three hits left him 12 short of 3,000 for his career. He passed Sam Rice for 27th place.
- Rodriguez's longest outing before Friday was 7 1/3 innings against Milwaukee on Sept. 18, 2005.
- Houston went ahead 4-3 in the all-time series vs. Seattle. The Astros are 2-2 against the Mariners at home.