Tage Thompson scored his first NHL goal, and Patrik Berglund scored the other for St. Louis (22-13-2), which has lost three games in a row and five of six. Allen made 32 saves.
The Blues led 1-0 and 2-1 in the third after neither team scored in the first two periods.
"We played I'd say probably 56 good minutes of hockey tonight, and then it seemed like we got the lead and obviously their team is going to press and we got caught in between," coach Mike Yeo said. "We weren't back, we weren't defending, and we weren't up creating the turnovers. It's a bad place to be."
Thompson gave St. Louis a 1-0 lead at 9:30 on a shot through traffic from the high slot. Cammalleri scored 38 seconds later, shooting the puck through a crowd in front of Allen to tie it 1-1 at 10:08.
"That's hockey. Momentum swings happen all the time," said Thompson, who was playing his sixth NHL game. "You get a couple of good bounces, you get a couple of bad bounces. I think the key is just to keep an even mindset, not get too high, not get too low. I thought we did a pretty good job with that. I thought our effort was there today."
Berglund scored on a one-timer from the slot off a setup from Alexander Steen at 13:22 to give the Blues a 2-1 lead.