Seattle starter Felix Hernandez blanked the Indians on five hits through eight innings and struck out 12 in an attempt to bring the Mariners their second straight win.
The runners were advanced by a sacrifice from Casey Kotchman and Shelley Duncan walked to load the bases. That brought up Hannahan, who hit League's first pitch to left to bring home the tying and winning runs.
Chris Perez retired the Mariners in order in the bottom half of the inning for his fourth save in five opportunities.
The win went to Josh Tomlin (1-1), who almost matched Hernandez through eight innings. Tomlin gave up only a fifth-inning run on five hits with seven strikeouts.