Morrison headed his side into the lead shortly before half time, only to then net an own goal to level things up for the visiting Wednesday.
However, Anthony Pilkington struck the winner to give the Welsh side all three points.
Cardiff striker Kenwyne Jones spurned a great opportunity to give his side the lead when he fired wide from around six yards out, moments after Gunnarson's attempt.
Craig Noone then flashed a shot wide of the goal on the half-hour mark after cutting inside with a mazy dribble before Morrison popped up towards the end of the half with a header from Peter Whittingham's excellent corner.
However, six minutes after the restart, Morrison put through his own net to even things up when he diverted Chris Maguire's cross past his goalkeeper.
The home side grabbed the lead once more just after the hour mark when Pilkington rifled home with his right foot.
Ravel Morrison was introduced for his Cardiff debut shortly after, and the on-loan West Ham United midfielder teed up Pilkington, who in turn fed Gunnarson for an acrobatic effort with less than 10 minutes remaining.