Striker Lee Gregory gave the Lions the lead only 81 seconds into the game, however a second half fightback from Latics saw them equalise on 59 minutes through an exquisite Mike Jones free kick.
With Latics looking the likelier of the sides to go on to win the game, they were hit with a sucker punch with five minutes remaining as Morison headed home at the back post to win the game for Millwall.
David Dunn made four changes to his starting line up from the last game with Colchester United, with Joel Coleman between the sticks in place of David Cornell.
Latics, however, got off to the worst possible start, falling behind within the opening two minutes of the game.
Wolves loanee Jed Wallace crossed into the centre for the onrushing Shane Ferguson. Coleman saved his initial effort but the ball fell to Gregory who tapped home from close range to give Millwall the lead.
The goal did not knock the stuffing out of Latics, however, and they were arguably the better of the two sides in the first half.
The returning Carl Winchester had Athletic’s first chance of the half as he received a cross from Dominic Poleon but saw his shot well saved by Millwall stopper David Forde.
Latics were creating set piece opportunities but Mike Jones’ delivery was just inches off reaching an Oldham man.
Athletic were keeping the ball well, with captain Liam Kelly at the heart of the action with Burnley duo Cameron Dummigan and Daniel Lafferty offering options on the wings.
Midway through the half, the visitors had the chance to double their lead but a superb double save from Coleman denied them.
It was Gregory which forced Coleman into his first stop and he got up quickly to deny Mark Beevers from six yards as Latics finally cleared the danger.
Rhys Murphy and Jake Cassidy were both causing a nuisance in attack and it was the latter which almost equalised for Latics after the half hour mark.
He tried an ambitious overhead kick which went just wide of Forde’s goal while Murphy would get his chance five minutes later.
The striker turned on the edge of the box and shot on the turn but a deflection saw the ball go inches wide of the post.
Kelly went close before the break, shooting wide from 35 yards whilst Tim Dieng’s header with two minutes of the half remaining drifted wide of the far post.
It was almost a bad start to the second half for Latics as Ferguson had a run on goal, however, his smashed the post from 18 yards.
Millwall shaded the early possession stats in the second half but a set piece just before the hour mark was what got Latics back into the game.
Jones was fouled on the edge of the box and he picked himself back up to rifle home the leveller, curling over the wall giving Forde no chance.
That gave Dunn’s men the momentum and they looked the most likely team to get the next goal.
Jones and Kelly both went close minutes later but it was the introduction of Jonathan Forte which made the real difference.
The forward had been missing since early September and he proved a constant threat on the left hand side for Latics.
On 75 minutes, Winchester unleashed a strong effort from 30 yards which Forde tipped wide of the goal.
The fans were really behind Dunn’s men and they felt a penalty should have been awarded a minute later as Jones tumbled in the area but the referee waved away the protests.
Latics did have the ball in the goal on 80 minutes through Murphy but the linesman spotted an offside as Jones delivered the ball back into the box from a free kick.
After Millwall goalkeeper Forde was booked for time wasting on 85 minutes, they cruelly found the winner through Morison.
It was Ferguson’s cross that caused the problems, and Morison stooped home at the back post to win the game for the Lions.
Latics continued to press forward in a bid to get an equaliser but Millwall slowed down the game and grabbed the three points.
Oldham Athletic: Coleman, Dummigan, Dieng, B.Wilson (Fuller 88’), Lafferty (J.Wilson 88’), Kelly, Jones, Winchester, Poleon (Forte 65’), Murphy, Cassidy.
Subs not used: Cornell, Mills, Brown, Bove.
Millwall: Forde, Cummings, Martin, Williams, Gregory (Onyodinma 77’), Beevers, Webster, Ferguson, Morison (Marquis 87’), Wallace (O’Brien 65’), Abdou.
Subs not used: Upson, Archer, Nelson, Thompson.
Goals: Oldham Athletic (Jones 59’) 1-2 Millwall (Gregory 2’, Morison 85’)
Attendance: 3,558 (362 visiting supporters)