The Mariners were down by two before a four-run sixth inning, highlighted by Morrison's double to right field off Brad Peacock (2-5) that put them on top. James Jones scored on a wild pitch in the inning and John Buck had an RBI single.
Young (8-4) allowed two hits - both solo homers - and struck out a season-high eight. It was his most strikeouts since he fanned nine against Colorado in 2012. Fernando Rodney pitched a scoreless ninth for his 24th save.
Marwin Gonzalez and rookie Kike Hernandez homered for the Astros. Hernandez has three hits and two RBIs in two games since being called up from the minors.
Dustin Ackley had three hits for the second straight game after snapping an 0-for-21 skid on Tuesday night, and Jones had a hit to finish the series with eight hits, six runs and two RBIs.
Seattle has scored 11 runs in the sixth inning in the last two games after managing just 31 runs in that inning in the first 83 games this season.
The Mariners couldn't get anything going against Peacock until the sixth inning. Jones got things started with a single with one out, and Peacock plunked Cano and walked Kyle Seager on four pitches to load the bases.
Jones cut the lead to one when he scored on a wild pitch, and Morrison's two-run double gave Seattle a 3-2 lead. Buck's run-scoring single pushed the lead to 4-2 and chased Peacock.
Peacock allowed six hits and four runs in 5 1-3 innings.
He was replaced by Anthony Bass, who was making his first appearance since May 10 after being reinstated from the disabled list on Wednesday. Bass allowed a single by Ackley with two outs before retiring Brad Miller to end the inning.
Robinson Cano hit a two-out double in the seventh and scored on a single by Kyle Seager to push the lead to 5-2.
Young didn't allow a hit until Gonzalez's homer to right field with one out in the third inning. It was the second home run of the series for Gonzalez, who recently became Houston's everyday shortstop when opening day starter Jonathan Villar was optioned to Triple-A.
He got right back on track after that, retiring the next seven batters. Houston's didn't get another hit until the home run by Hernandez with two outs in the fifth made it 2-0.
Young has given up 14 home runs this season, which leads the team, but 11 of those homers have been solo shots.
Peacock allowed a single to Dustin Ackley with two outs in the second inning before retiring the next six batters. John Buck singled with two outs in the fourth, but Peacock still faced the minimum in that inning when he was out trying to stretch it into a double.
Jose Altuve grabbed the less-than-perfect throw from rookie left fielder Domingo Santana and crawled to the bag for the out.
Peacock threw a perfect fifth inning and struck out Endy Chavez to start the sixth before the trouble began.
NOTES: The Mariners are off Thursday before opening a series with the White Sox on Friday. ... The Astros begin a four-game series against the Angels on Thursday. ... Houston optioned LHP Kevin Chapman to Triple-A Oklahoma City to make room for Bass on the roster. ... The Astros agreed to terms with international free agents RHP Franklin Perez, SS Miguelangel Sierra and C Brandon Benavente on Wednesday.