The Flames trailed 3-1 after two periods but began a comeback when Roman Horak knocked in the rebound of a Jay Bouwmeester shot 1 1/2 minutes into the third frame. They scored again less than a minute later when Matt Stajan batted in another rebound against Dallas' Richard Bachman for the tying goal.
Begin then put Calgary ahead when he scored on the rebound of a Chris Butler blast from the point, and the Flames hung on for their second win in three games.
Cody Eakin, Reilly Smith and Ryan Garbutt each netted a second-period score for the Stars.
Bachmann finished with 22 saves.