Sheffield Wednesday 1 Bradford City 2
Morrison pounced on Lee Bullen's weak header to beat David Lucas via a deflection.
Wednesday thought they had done enough to earn a point, against a team consisting of five of their former players.
Steven MacLean scored his 15th league goal of the season, when he headed home from two yards after Chris Brunt's 71st minute free-kick had rebounded off the underside of the crossbar.
The Bantams had taken the lead through Nicky Summerbee, but faded in the second half as Wednesday attacked.
But Morrison, who began his career in England at Wednesday, came off the bench to score the winner.
The result leaves Bradford two points adrift of the play-offs, and ends Wednesday's ten-match unbeaten run.
Bradford's top scorer Dean Windass created the Bantams' opening goal.
The veteran ran at the Owls defence and played in Summerbee on the right, and the winger drilled the ball home from 12 yards.
James Quinn had a header clawed off the line by Australian goalkeeper Paul Henderson moments later, as the Owls looked to respond.
Windass almost doubled City's lead in the 16th minute but he was a whisker away from connecting with Lewis Emanuel's left-wing cross, which was tipped away by David Lucas.
Quinn was off target with a header from six yards on 18 minutes, from Glenn Whelan's cross.
Then Whelan went close at the end of the half, but his header dipped just wide of Henderson's post.
Muirhead should have doubled Bradford's lead seven minutes after the interval, but he dragged an easy chance wide after cutting through the Wednesday defence.
Wednesday were buoyed by MacLean's 71st minute equaliser, and Whelan nearly nudged them in front when he collected a one-two with Lee Peacock and drove the ball against the inside of the post but it was the visitors that were to claim all three points.