The Blues were trailing 3-2 in the closing seconds of regulation when they pulled goalie Jaroslav Halak for a sixth attacker.
Oshie picked up the rebound of Alex Pietrangelo's shot, wheeled around in the slot and fired the puck past Kevin Poulin to tie the score with 27 seconds left.
The Islanders looked like they had won late in overtime when Thomas Vanek appeared to score, but a video review yielded a controversial ruling that he had kicked the puck into the net, sending the contest into a shootout.
Vanek scored in the second round, but Alex Steen then answered with a backhander.
After John Tavares missed for New York, Shattenkirk ended it with a shot that went over Poulin's glove, off the crossbar and into the net for the game-winner.
Vladimir Tarasenko scored twice in regulation and Halak finished with 33 saves for St. Louis, which took a third win in four games.
Vanek and Kyle Okposo each supplied a goal and an assist for the Isles, who were coming off a 6-4 loss to Pittsburgh Thursday.
Matt Martin also scored and Poulin turned aside 32-of-35 shots.