The Rays tied it up in the top of the eighth on Luke Scott's RBI double, but the Mariners responded in their half of the inning to tighten the American League's wild card race.
Tampa Bay's lead for the second wild card position was reduced to two games over both Baltimore and Cleveland. The New York Yankees are 2 1/2 games back.
Seattle benefited from a one-out fielding error in the eighth by center fielder Desmond Jennings that allowed Kyle Seager to reach second base. Kendrys Morales drew a walk and after Michael Saunders struck out Smoak doubled to right to bring home both runners.
The eighth-inning runs came against Joel Peralta (2-6) in his only inning of work.
Carter Capps (3-3) got the win even though he gave up the tying run in the top of the eighth and Danny Farquhar earned his 13th save by working around a ninth-inning hit.