Alex Pietrangelo's tally with 8 minutes left in regulation tied it at 3-3, and after a scoreless overtime, the game went into a shootout.
Oshie first beat Nashville's Pekka Rinne on a backhander, and after Brian Elliott made the second of his two shootout stops, Steen followed with a shot along the ice that eluded Rinne's outstretched leg for the game-winner.
Elliott replaced starter Jaroslav Halak in the second period and stopped all 13 shots he saw to earn the victory after Halak had yielded three tallies on 14 shots.
Vladimir Tarasenko and Andy McDonald also scored for St. Louis.
Rinne finished with 36 saves.