Kruger was parked in front of the net when he converted a pass from Ben Smith to break a 3-3 tie with 8:16 left in the period.
Less than 2 minutes later, the Blackhawks went on a power play and Keith launched long wrist shot from the left point that eluded Oilers goalie Devan Dubnyk for what turned out to be the winning goal.
Brandon Saad notched a goal and an assist for Chicago, which collected a sixth win in seven games.
Jordan Eberle scored with 1:28 remaining to bring the Oilers within a goal, but they could get no closer and fell to 4-13-2 on the season. He also added two assists.
David Perron logged a goal and an assist while Nail Yakupov and Ryan Nugent-Hopkins each scored for Edmonton.
Dubnyk ended with 31 saves.