Brian McCann hit a tiebreaking two-run homer off Dan Altavilla (1-2) in the sixth inning as the Astros snapped a three-game losing streak and moved past the Mariners into second place in the American League West.
Chris Devenski pitched the ninth for his second save of the season.
McCullers (2-1), who entered the game with a 7.71 ERA, made just one mistake.
With two outs in the bottom of the first inning, he left an 0-2 pitch over the plate, and Robinson Cano hit it over the center field fence, his first home run of the season.
The only other baserunner McCullers allowed came on a two-out walk to Daniel Vogelbach in the fifth inning.
Mariners left-hander Ariel Miranda, who was making his first start of the season because it was the first time Seattle needed a fifth starter between off days and a snowout in Minnesota, allowed just one run on six hits in five innings.
Miranda, who walked four and struck out five, got out of several jams. He left eight Astros stranded on base and limited them to 1-for-6 with runners in scoring position.
Altavilla got into trouble immediately after entering in the sixth. He walked Evan Gattis on four pitches, then threw a wild pitch that allowed the runner to advance to second.
McCann then launched a 2-1 pitch into the right field bleachers to give the Astros their first lead. It was McCann's first home run of the season.
The Astros added their final run in the eighth as Gattis singled off Chasen Bradford and was replaced by pinch runner Derek Fisher. Left-hander Wade LeBlanc then hit McCann with a pitch, and a wild pitch moved Fisher to third. Fisher scored on George Springer's sacrifice fly.
It didn't take long for Houston to tie the score after Cano's home run.
Yuli Gurriel led off the second with a double and moved to third on third baseman Kyle Seager's throwing error on Alex Bregman's infield single.
Gurriel scored on a groundout by Josh Reddick. The Astros loaded the bases with one out, but Miranda caught Jake Marisnick looking at a called third strike and then struck out Springer to get out of the inning.
--Field Level Media
Houston | Seattle | |
Lance McCullers Jr. | Player | Ariel Miranda |
Win | W/L | No Decision |
7.0 | IP | 5.0 |
11 | Strikeouts | 5 |
1 | Hits | 6 |
1.29 | ERA | 1.80 |
Houston | Seattle | |
Evan Gattis | Player | Ichiro Suzuki |
2 | Hits | 1 |
0 | RBI | 0 |
0 | HR | 0 |
2 | TB | 1 |
.667 | Avg | .333 |