The Rangers had scored a combined five runs over the previous two innings before Smoak launched Tanner Scheppers' (1-1) second pitch over the center- field wall.
Scheppers succeeded Martin Perez, who walked one and struck out five in 4 1/3 hitless innings in relief of ineffective starter Scott Feldman.
"I saw Seattle hitters finding holes. It just wasn't his night tonight," Rangers manager Ron Washington said.
Smoak's blast made a winner out of Lucas Luetge (2-1), who gave up the tying run on a David Murphy groundout in the seventh but got rookie Jurickson Profar to ground into a fielder's choice with the bases loaded to end the inning.
The Mariners tacked on an insurance run in the ninth as pinch-runner Munenori Kawasaki scored on a base hit by Smoak.
Tom Wilhelmsen recorded the final four outs to earn his 27th save of the season.
With the loss, the Rangers saw their AL West lead shrink to two games over Oakland.
Michael Saunders drove in the Mariners' first run with a two-out single in the first inning and highlighted a five-run third with a two-run triple.
Dustin Ackley led off the frame with a home run to right field off Feldman, who was pitching on eight days' rest and had lost five consecutive decisions over a six-start stretch. His ERA in that time was 5.97.
Saunders made it 4-0 with a triple into the right-field corner. The hit plated Kyle Seager and John Jaso, who had singled and walked, respectively. Smoak and Eric Thames each added an RBI single, chasing Feldman from the game.
Seattle starter Jason Vargas walked the bases loaded in the home third, but limited the damage to a Nelson Cruz sacrifice fly. Vargas wasn't as fortunate in the sixth, surrendering a three-run homer to a returning Mike Napoli.
The Rangers reinstated Napoli, as well as pitcher Robbie Ross, from the 15-day disabled list on Saturday. Napoli missed 33 games with a left quad strain.
Cruz singled home Josh Hamilton in the seventh before Murphy grounded out with the bases loaded.
"It's good signs for us," Vargas said.
Ross had been sidelined since Aug. 30 with a left forearm strain ... Vargas gave up four runs on six hits and three walks in 5 2/3 innings ... Feldman allowed six runs on seven hits and walked two in his 100th career start.
09/16 02:26:03 ET