Forest were second-best for long periods but held on and two late goals sealed victory.
Megson's side started well and Preston goalkeeper Chris Day, signed on a month's loan from QPR, was forced to tip over a powerful Commons free-kick in the tenth minute.
Preston hit back and Eddie Lewis' 20-yard shot forced Paul Gerrard into a fine save. Paul McKenna went close to breaking the deadlock for Billy Davies' in-form side while at the other end the outstanding Commons fired just over with a 20-yard shot.
As the snow intensified after the interval, Richard Cresswell fired straight at Gerrard in the 51st minute while Gareth Taylor twice went close for Forest.
With just 13 minutes left Forest finally opened the scoring to the relief of the home fans. Commons broke free down the left before crossing for substitute Paul Evans to nod home.
Just five minutes later, the hosts doubled their advantage with creator Commons this time scoring himself.
The former Stoke City starlet sent a delightful 35-yard lob over Day and into the top corner of the net.