St. Louis has won six of seven overall and eight of nine against Edmonton.
The Oilers lost for the second time in five games.
Pietrangelo, Schwartz and T.J. Oshie scored in 7:14 span at the outset of the third period to break a 2-2 tie, and Schwartz added his second goal of the period at 12:56.
Ryan Miller made 22 saves to improve to 5-0-1 since joining the Blues in a trade with Buffalo on Feb. 28. He's 7-0 against Edmonton
Sobotka, who returned to the lineup after missing 12 games with a knee injury, and Oshie each had two assists. Miller has stopped 133 of 144 shots in six games with St. Louis and has yet to lose in regulation.
Pietrangelo scored 42 seconds into the third period on a shot from the low slot. Sobotka set up the play by stealing the puck in the corner.
Schwartz added his 20th goal less than 4 minutes later, and Oshie converted on a 5-on-3 power play.
Fraser tied it at 2 late in the second period with a shot from close range.
Tarasenko gave the Blues a 2-1 lead with a shot from the slot off a pass from Oshie.
Notes: St. Louis D Barret Jackman left the game briefly late in the second period after colliding with Jesse Joensuu. Jackman returned for the third period. ...The Oilers have used six goalies this season. ... Ten of the Blues' last 13 games have been decided by one goal. ... Edmonton C Sam Gagner had a five-game points streak snapped. ... The Oilers are 7-2-3 in their last 12 games, their best stretch since going 8-3 at the start of the 2011-12 season. ... Oshie's two assists give him a career-high 36 this season.