Having spent much of the early part of the season in the top two, the Bluebirds have slipped lately and now find themselves four points adrift of second-placed Norwich.
After a goalless opening period, the Bluebirds took the lead through Chris Burke but the Lions hit back in fine style as goals from Liam Trotter and Kevin Lisbie gave them the lead.
Dave Jones’ side produced a remarkable riposte thereafter as Peter Whittingham levelled the scores before Burke netted his second goal.
The drama was not over, though, as Morison netted a leveller in the 87th minute to earn the Lions a share of the points.
Heading into the game having picked up just one point from their last three games, Cardiff seemed determined to impose themselves in the opening stages.
But, despite some neat build-up play, their final ball was leaving a lot to be desired.
Millwall, meanwhile, approached the encounter full of confidence after back-to-back victories over QPR and Burnley, but it did not show initially.
The visitors nearly got the reward their endeavour deserved in the 13th minute, but Darren Ward was on hand to block Jay Bothroyd’s goal-bound effort.
The pressure continued to build on the hosts’ backline, with Burke jinking his way into the box before seeing a well-placed effort turned wide by David Forde.
Cardiff were forced into a change soon after, with the injured Bothroyd being replaced by Jon Parkin.
The game briefly sparked into life just before half-time as Parkin utilised his considerable frame to bring the ball down before unleashing a vicious effort, only to be denied by Forde.
Whatever Jones said to his players at the break appeared to work as the visitors took a 49th-minute lead when Burke’s mis-hit effort trickled past Forde.
But almost immediately the Lions drew level when, after Gabor Gyepes brought down Lisbie, Trotter netted from the penalty spot.
The end-to-end nature of the game continued and, after Bluebirds striker Craig Bellamy was denied a penalty when the referee appeared to have pointed to the spot, Lisbie gave Millwall the lead.
Substitute Hameur Bouazza sent in an excellent cross, allowing the former Charlton striker, who had ghosted into space, to nod home.
Cardiff responded excellently and went agonisingly close to equalising when Bellamy headed against the bar.
They did level through Whittingham in the 73rd minute, though.
Bellamy was the orchestrator, using all his pace to reach the byline before squaring for the former Aston Villa man, who was left with an easy finish.
And they were not finished there as Burke edged the visitors in front seven minutes later, bundling home after Bellamy’s effort was parried by Forde.
But just when the points appeared to be safe, Bouazza found Morison, who made no mistake with his finish from just inside the area.
There was still time for Lions defender Alan Dunne to be sent off for a second bookable offence, but no time for a deciding goal.