Despite giving up 16 hits, the Mariners won their fourth in a row.
Seattle overcame an early two-run deficit with a four-run fourth, two of those runs coming in on a home run by Kyle Seager. Dustin Ackley doubled home the other two.
Miller then hit a two-run homer in the sixth and had a three-run blast in the eighth. He was playing in his 17th major league game, having produced 15 hits in 61 at-bats coming into the contest.
The two home runs by Miller gave Seattle a 9-3 lead and made a winner out of Joe Saunders (9-8). He gave up nine hits over 5 1/3 innings, but held the Astros to three runs.
Tom Wilhelmsen allowed a run on two hits over the final 1 1/3, but still picked up his 20th save.