Tom Gilbert, Ryan Potulny and Shawn Horcoff each had two assists for the last-place Oilers, who have 58 points, hoping to eclipse their franchise-worst 60 points set in the 1992-93 season.
Andrew Brunette scored for the Wild, who suffered their fourth consecutive loss.
Edmonton opened the scoring quickly, scoring at 1:33 as Taylor Chorney found Penner open at the side of the net and he sent his career-best 30th goal of the season past Wild goalie Niklas Backstrom.
The Oilers made it 2-0 midway through the first period as Gilbert sprung Moreau and Horcoff on a short-handed 2-on-1 break with a long pass. The Oilers' captain opted to take the shot himself, sending a dribbler through Backstrom's legs.
The Wild made it 2-1, scoring just 12 seconds into the second period as Brunette scored his 25th on a wrist shot from out front. Defenseman Nate Prosser earned an assist on the goal in his first NHL game.
Edmonton had a good chance to regain the two-goal cushion 12 minutes into the second as Patrick O'Sullivan's shot hit the post and then Backstrom's back before the puck narrowly skittered to safety.
The Oilers restored their two-goal lead with just over five minutes to play in the third as Moreau brought it out from behind the Wild goal line and then batted home his own rebound to make it 3-1.
The Oilers then put the game away with five minutes left and Prosser off for a high-sticking double minor, as a big rebound came out to Penner and he scored his second of the game.
Devan Dubnyk stopped 25 shots for Edmonton, while Backstrom made 27 saves for the Wild.
Notes: Penner's 30th goal was the first time an Oilers player has hit the mark since Edmonton traded Ryan Smyth during the 2006-07 season. ... Edmonton signed NCAA prospect Chris Vande Velde, fourth round, 97th overall selection by the Oilers in the 2005 draft. In 43 games for the University of North Dakota this season, Vande Velde had 18 goals and 17 assists.