Full-time from the Checkatrade.com Stadium
Morison was on hand to head home the winner with four minutes remaining after Lee Gregory's first-half opener had been cancelled out by Enzio Boldewijn (20mins) and Jordan Roberts (35mins).
But a second-half fightback saw midfielder Shaun Williams (67mins) haul The Lions level before Morison made it three wins in a row with his 86th-minute effort.
In the sweltering Sussex sunshine, Crawley were bright and energetic from the start but The Lions did enough to deal with a number of inviting deliveries from the lively Roberts and Boldewijn.
It took a timely clearance from Joe McNerney to avert the danger with Gregory waiting to pounce after Morison had flicked on Williams' dinked through ball.
At the other end a firm Shaun Hutchinson headed clearance prevented Roberts' teasing cross reaching the goalmouth as Crawley again asked questions of the visiting defence.
That joy was short-lived and within four minutes Crawley were back on level terms; some neat footwork from Boldewijn inside the penalty area was matched by a cracking finish into the top left hand corner that gave Jordan Archer no chance in the Millwall goal.
Millwall nearly mustered what would have been a stunning equaliser just three minutes later when O'Brien's stupendous 22-yard volley drew gasps from the crowd as it flashed wide of the upright, but the home side saw out the opening half to take a 2-1 lead in at the break.
The Lions started the second period with more purpose and it took a smart save from sub keeper Mitchell Beeney to deny Gregory a second goal of the game, grabbing the striker's drive as it headed towards goal.
A second goal was always on the cards and it duly arrived on 67 minutes with a bullet header by Williams from Ferguson's inch perfect free-kick from the left flank.
A triple change by The Lions just three minutes later saw David Worrall, Fred Onyedinma and Ben Thompson replace O'Brien, Gregory and goal-scorer Williams.
The two teams began to trade scoring chances and in a flurry of goalmouth activity a neat one-two between Morison and Ferguson saw the ball played into Worrall, whose shot stung the palms of Beeney whilst at the opposite end Ayran Tajbakhsh's low effort was grabbed by David Forde.
Millwall got their noses in front with four minutes remaining, however, with a well-worked goal. A long ball from Byron Webster was picked up by Onyedinma, he slipped the ball to Ferguson and the latter's inviting delivery was headed home by Morison for his first goal of pre-season.
It could have been four in the dying seconds only for Ferguson's left-foot angled drive to rattle the inside of the upright and bounce away to safety with virtually the last kick of the match.
Scorers: Gregory (16mins), Williams (67mins), Morison (86mins)
Ref: T. Robinson
Att 1,278 (away 489)
Tweets by @MillwallFC