The Mariners had built a 3-0 lead in the second with the help of run-scoring singles from Dustin Ackley and Brad Miller before Franklin came to the plate with the bases loaded and smacked a pitch down the right-field line for a grand slam.
Ackley finished 3-for-4 with two RBI. Miller and Michael Saunders each drove in a pair for Seattle, which banged out 13 hits.
Felix Hernandez (11-4) pitched six shutout innings, scattering four hits while lowering is his ERA to 2.43. The Mariners ace issued one walk and struck out seven.
Astros starter Jordan Lyles (4-4) was lit up for 10 runs (nine earned) on eight hits in just four frames.
Jose Altuve, Matt Dominguez and Brandon Barnes each produced an RBI for Houston.