O’Malley, Morrison shine late, lift Mariners over Astros 8-3