Shattenkirk scored midway through the final period, breaking a 1-1 tie.
Ryan Reaves also scored as St. Louis notched a third straight win and sixth in seven games.
Jaroslav Halak stopped 19 shots for the Blues.
Jussi Jokinen got the only goal for the Penguins, who fell for a second straight game.
Marc-Andre Fleury turned aside 30 shots.
Easer Egg Roll brings thousands to White House
Lytro unveils camera that can focus a photo after shooting it