Jimmy Vesey and Victor Olofsson scored, and Ullmark made 26 saves for Buffalo (11-10-4), which is 1-4-1 in its past six games.
"We definitely had the chances to put it away after the 2-1 [goal], and the inability to do that and then have a D-zone breakdown to allow them back into the game is really, really disappointing," Sabres coach Ralph Krueger said. "Again, it's a painful situation that we have to manage and use in the right way.
"But if you look at the effort overall there was a lot of good hockey there from our side too, and I thought we recovered well from the first goal against, came back strong to take the lead and then, yeah, giving it up is definitely not acceptable."
Brodie gave the Flames a 1-0 lead on a shot from the right point that squeaked between Ullmark's pads at 17:55 of the first period.