St. Louis won for the sixth time in eight games. The Blues have at least one point in 13 of the last 15 games and improved to 10-2-3 under Ken Hitchcock, who took over for Davis Payne on Nov. 6.
The Ducks have won three times in the last 19 games.
Chris Porter also scored for the Blues, who have won their last four home games against Anaheim by a combined 24-9 score.
Cole, who also had an assist, broke a 1-1 tie at 7:39 of the second period with his second goal in 37 career games. He converted on a rebound of a shot by Matt D'Agostini. Cole, the 18th overall pick in the 2007 draft, was a healthy scratch in the Blues' 3-2 win over Detroit on Tuesday.
Halak improved to 5-7-3 after a rough 1-6 start to the season.
Bobby Ryan and Devante Smith-Pelly scored for the Ducks. Ryan's goal was his tenth of the season and third in the last two games. Anaheim fell to 1-2-1 under coach Bruce Boudreau, who took over for Randy Carlyle on Nov. 29.
Oshie scored late in the second period to give St. Louis a 3-1 lead and added an empty-netter with 45.3 seconds left for his ninth goal of the season.
Anaheim climbed to 3-2 on Smith-Pelly's third goal of the season at 3:17 of the third period.
Porter got the Blues out to a 1-0 lead, poking a rebound behind Anaheim goalie Jonas Hiller in the first period. Hiller, who stopped 37 shots in a 3-2 win over Los Angeles on Tuesday, fell to 7-12-5.
Jamie Langenbrunner added two assists for St. Louis.
Notes: Anaheim C Saku Koivu suffered a lower-body injury in the second period and did not return. ... Blues C Jason Arnott played in his 1,200th NHL game, becoming the 89th player in league history to do so and sixth active player to reach the milestone. ... Ducks RW Teemu Selanne is fourth on the active list at 1,287 career games. ... Blues D Kevin Shattenkirk was did not play due to flu-like symptoms ... St. Louis picked up its 900th home win in franchise history. ...The Ducks were looking to win back-to-back games for the first time since Oct. 16-17.
Keep up with the latest Blues news - Download the HockeyStL app - It is free and available for Droid, iPhone and Blackberry devices