Ryan Getzlaf and Nick Bonino each notched a goal and an assist for the Ducks, who swept a two-game road swing against Chicago and the Blues.
Corey Perry also scored and Frederik Andersen stopped 26 shots.
Patrik Berglund and Jaden Schwartz scored for St. Louis, which fell for the third time in four contests.
Jaroslav Halak lasted less than 8 minutes in net before he was pulled after yielding three goals on just eight shots.
Brian Elliott turned aside 13-of-14 the rest of the way.