The Lions went into the game with only one win from their last nine in all competitions but deservedly went in front after 11 minutes through a fine 20-yard effort from Morison.
Derby rarely threatened and, four minutes after half-time, Morison turned provider with a pinpoint cross for Theo Robinson to bullet home a diving header.
The Rams tried to find a way back into the game and Shaun Barker went close with a header but the Millwall defence stood firm.
The win ended a run of five games without a home win for Millwall, who moved above Derby and into ninth place in the Championship.
Millwall made a bright start to the match and Robinson's 20-yard effort was saved by Derby goalkeeper Frank Fielding.
The home side made their early pressure pay and took the lead with 11 minutes gone through the lethal Morison.
Liam Trotter embarked on a strong run and played the ball into Morison, who rifled home from 20 yards for his seventh goal of the season.
The Lions immediately went in search of a second and James Henry headed over before Alan Dunne fired wide from close range.
With 20 minutes gone a good move gave Robinson an opportunity but John Brayford was alert to make a fine saving tackle.
Despite their recent good form, Derby were struggling to turn any of their possession into meaningful attempts on goal.
However, with half-time approaching, Dean Moxey let fly with an effort from 30 yards which Millwall goalkeeper David Forde tipped around the post.
Kris Commons also had a shock blocked by Dan Shittu as the visitors finished the half strongly.
The second period began in a similar fashion to the first with Millwall on the front foot and they made it 2-0 four minutes after the break following another excellent move.
Henry played a fine ball to Morison down the right and he got past Dean Leacock before crossing for Robinson, who sent a superb diving header past Fielding and into the bottom-right corner.
Once again it was all Millwall and Henry was denied by a good block from Moxey.
Millwall were looking comfortable but, with 20 minutes remaining, Tomasz Cywka's corner caught Forde in no-man's land only for Barker to head wide from six yards.
That chance gave the visitors hope and Brayford almost got in but Forde made a good smothering save.
Morison missed a good chance to make it 3-0 late on but it did not matter as Millwall had already done enough to earn the three points.