McCullers (4-2), who missed his previous turn with a blister on his right index finger, allowed five hits and one run while matching his season high for strikeouts. Luke Gregerson pitched a perfect eighth and Will Harris did the same in the ninth for his eighth save.
Springer doubled and scored in the first inning. There were two outs in the fifth when he launched his 19th home run to left-center field to make it 2-1.
Seattle starter Wade Miley (6-5) yielded seven hits and two runs in 6 2/3 innings for his third straight loss.
Dae-Ho Lee had an RBI single for the Mariners, whose four-game winning streak was snapped.
The Mariners came up empty twice after having a runner on third with no outs.
The first time came when Leonys Martin hit a leadoff triple before Seth Smith struck out. McCullers then struck out Robinson Cano, but the ball got away from catcher Jason Castro and Martin broke for home. McCullers covered and took the short toss from Castro to tag out Martin at the plate.
Springer got things going for the Astros with a double in the first before a single by Marwin Gonzalez. Carlos Correa drew a walk to load the bases with one out before the Astros took a 1-0 lead on a sacrifice fly by Luis Valbuena.
Kyle Seager hit a ground-rule double with one out in the second and the Mariners tied it on the single by Lee. McCullers settled in after that, retiring the next 14 in a row. He struck out eight in that span, including the side in the third.
The Mariners didn't have another baserunner until Cano singled to start the seventh. A walk by Nelson Cruz followed by a single from Seager loaded the bases. Seattle missed another scoring opportunity when Lee grounded into a double play before McCullers retired Adam Lind to end the inning and his day.
Smith went 0 for 4 with three strikeouts, ending a streak of four straight games with a homer.
Mariners: RHP Felix Hernandez will throw a simulated game Wednesday. Manager Scott Servais said Hernandez will throw 45 pitches. Hernandez has been on the disabled list with a strained right calf since June 1.
Mariners: Taijuan Walker (4-6, 3.29 ERA) will start for Seattle on Tuesday. Walker is 2-0 with a 1.59 ERA and 23 strikeouts in his last four starts.
Astros: Dallas Keuchel (5-9, 5.13 ERA) is scheduled to start Tuesday. Last year's AL Cy Young Award winner, who has struggled this season, has won two games in a row for the first time this year and is looking for his first win at home since April 15.