The game was scoreless into the third period but Chad LaRose and Jeff Skinner finally broke through against Elliott. That snapped a two-game skid for Carolina and gave the Blues their second straight loss.
Despite the setback, St. Louis leads Vancouver by six points for the top spot in the Western Conference.
LaRose broke the scoreless tie with 7:52 to go in the third period by putting a wraparound shot past Elliott.
Ward, who made 40 saves, has 20 shutouts for his career.