Heatley tallied twice in the second period, one of them on a power play, and assisted on Joe Pavelski's third-period marker, which turned out to be the decisive score.
Antero Niittymaki turned aside 22-of-25 shots but had to survive a rough third period when the Oilers scored twice during a 13-shot assault. But he hung on to secure only the first win in seven road games for San Jose.
Shawn Horcoff and Jim Vandemeer found the net late in the game but Edmonton came up short and lost for the sixth time in eight home contests.
Devan Dubnyk allowed all four goals on 25 shots for Edmonton.