The Oilers, who have dropped out of playoff contention, handed the Flames a potentially damaging setback in their bid to extend their season. Calgary missed a chance to jump from a tie for ninth all the way to seventh place in the tightly bunched Western Conference standings.
Nugent-Hopkins and Jordan Eberle scored first-period goals for the Oilers and Nugent-Hopkins gave Edmonton a 3-1 lead midway through the third.
Devan Dubnyk made 18 saves and allowed only a second-period tally by Mark Giordano.
The victory was tempered by the loss of second-year forward Taylor Hall early in the game after he was knocked to the ice by a hard check from Calgary defenseman Cory Sarich.
Leland Irving gave up the three goals on 25 shots.