Chicago Blackhawks\' Martin Havlat of Czech Republic, left, battles for the puck with Calgary Flames\' Jarome Iginla during the first period of an NHL hockey game Sunday. (AP Photo/Nam Y. Huh)
After Wayne Primeau won a draw in the Chicago zone, Hamrlik beat Nikolai Khabibulin on the short side with a drive from the left point.
Moments earlier, Khabibulin had been hit in the mask by Dion Phaneuf's high shot. Play was stopped, setting up the faceoff.
Kristian Huselius and Stephane Yelle also scored for the Flames, who won their third straight. Calgary improved to 90 points and strengthened its hold on eighth place in the Western Conference.
Radim Vrbata and Denis Arkhipov replied for Chicago, which lost its fifth straight. The Blackhawks are in 14th place in the West and have been eliminated from playoff contention for the eighth time in nine seasons.
Khabibulin blocked 27 shots. Calgary's Miikka Kiprusoff made 29 saves.
Martin Havlat, Chicago's leading scorer, was held without a goal for the 12th straight game. He has five assists during the slump.
Huselis opened the scoring 2:01 into the first when he beat Khabibulin on the short side from the left circle.
Vrbata tied it 1-1 at 5:55, when he skated unchallenged out of the left corner and stuffed a shot under Kiprusoff's pads.
Arkhipov gave Chicago a 2-1 lead on a deflection with 5:59 left in the first. While cutting through the right circle, he redirected Brent Seabrook's drive from the point.
Yelle's goal-mouth deflection tied it 2-2 just 48 seconds into the third. Among several players screening Khabibulin, Yelle tipped in Phaneuf's low drive from the top of the slot.
Notes: Calgary LW David Moss missed his fourth game with a lower body injury. Flames D Mark Giordano, D Andrei Zyuzin and RW Eric Goddard were healthy scratches. . . . Chicago C Peter Bondra returned after missing four games with a shoulder injury. Blackhawks LW Tony Salmelainen and RW Nikita Alexeev were healthy scratches.