Cajanek converted a rebound of Stempniak's shot from the slot 2:57 into the third to snap a 3-3 tie. Stempniak, in his second pro season, had his first three-point game in the NHL, and Bill Guerin also scored for the Blues.
Radim Vrbata had a goal and an assist for Chicago, which played without right wing Martin Havlat. Havlat, who entered Saturday as the NHL's scoring leader with 13 points, will miss two-to-three weeks after spraining his right ankle Friday night at Dallas.
Rene Bourque and Adrian Aucoin also scored for the Blackhawks.
St. Louis' Curtis Sanford made 24 saves, and Chicago's Nikolai Khabibulin stopped 25 shots.
Bourque and Vrbata scored 13 seconds apart early in the first period to give the Blackhawks a 2-0 lead. Bourque opened the scoring at 6:28, tapping in Patrick Sharp's feed across the crease to complete a 2-on-1 break. Vrbata made it 2-0 at 6:41 when he cut across the slot from the left wing boards and fired a shot past Sanford.
Stempniak cut it to 2-1 with 7:25 left in the first. From the edge of the crease, he popped in a loose rebound of Jamie Rivers' shot from the left point.
Stempniak's power-play goal 16 seconds into the second tied it at 2. His shot from a sharp angle from the left side of the crease appeared to surprise Khabibulin.
Guerin gave St. Louis a 3-2 lead at 10:01 of the period. He knocked in a rebound of Doug Weight's shot from the point after Khabibulin failed to cover up the puck.
Aucoin's power-play goal - fired in through a screen from the left point - with 5:10 left in the second tied it at 3.
Notes: The Blackhawks recalled F Brandon Bochenski and D Danny Richmond from Norfolk of the AHL. Both played against the Blues on Saturday, with Bochenski taking Havlat's place on a line with Vrbata and Michal Handzus. ... Havlat, acquired from Ottawa with F Bryan Smolinski in July, missed 58 games last season with the Senators because of a shoulder injury. ... D Jassen Cullimore and Fs Matt Keith and Denis Arkhipov were Chicago's healthy scratches Saturday. ... St. Louis D Jay McKee missed the game because of a fractured bone in his right hand. He was hurt Friday night against Vancouver.