Calgary broke a scoreless tie at 5:39 of the third period after a bad sequence from Blues defensemen Carlo Colaiacovo and Tyson Strachan.
Strachan failed to control Colaiacovo's cross-ice pass deep in his own end. When Strachan did corral the puck, his clearing attempt was knocked down by Alex Tanguay, who fed Moss. He quickly snapped his 15th goal past Ben Bishop before being wiped out by a sliding Colaiacovo.
St. Louis pressed hard in the closing moments and nearly tied it with 3 minutes remaining.
Brad Boyes banked a shot in off Kiprusoff from the side of the Flames' net, but the goal was waved off by back referee Dan O'Rourke who judged St. Louis forward David Backes had knocked the puck out of the air with a high stick.
One minute later, Patrik Berglund's shot beat Kiprusoff cleanly but hit the post.
Calgary (32-23-9) finished its five-game homestand 3-1-1 and moved into sole possession of sixth place in the Western Conference.
St. Louis (28-25-9) lost for the fourth time in its past five games and remains in 13th place in the conference.
The two teams meet again Tuesday night at the Scottrade Center in St. Louis.
Bishop, a 6-foot-7 rookie making just his third start, had a 39-save shutout Friday in the Blues' 5-0 win over Edmonton.
He wasn't as busy Sunday, but still had to come up big on a couple of occasions.
Right after the Flames took the lead, Bishop denied Jarome Iginla on a heavy slap shot from the wing.
At the other end, Kiprusoff was sharp.
His best stop came midway through the second period when a lane opened up for Alex Pietrangelo. The Blues' defenseman skated in all alone, but Kiprusoff kicked out a pad as Pietrangelo went to his backhand.
Kiprusoff was busiest in the third period when he faced 14 shots.
It was the 39th career shutout for Kiprusoff, who was making his 16th straight start.
Notes: St. Louis C Vladimir Sobotka did not return to the game after taking a Iginla slap shot off the foot in the first period. ... Tanguay played in career game No. 800. ... Calgary rookie Greg Nemisz did not play in what would have been his first NHL game. The 20-year-old was recalled Saturday from Abbotsford (AHL) given the uncertain status of RW Tim Jackman (eye) and LW Niklas Hagman (flu). However, both ended up playing. ... The Blues' lineup featured seven players who didn't play when St. Louis lost 4-1 to Calgary on Jan. 26. ... St. Louis failed to score on the power play for the first time in nine games.