Morrison was selected by the Cleveland Browns in the third round, with the 66th overall pick, of the 1968 NFL draft.[3] He played in all 14 games for the Browns during his rookie year in 1968, rushing 18 times for 39 yards and one touchdown while also catching two passes for 40 yards and one touchdown.[3] He appeared in 14 games, starting one, in 1969, totaling 59 carries for 300 yards and one touchdown, six receptions for 71 yards, and nine kick returns for 155 yards.[3] Morrison played in 14 games for the third straight season in 1970, starting two of them, accumulating 73 rushing attempts for 175 yards, five receptions for 95 yards and one touchdown, 15 punt returns for 133 yards, and seven kick returns for 153 yards.[3] He appeared in eight games for the Browns in 1971, only rushing five times for negative two yards while also returning nine kicks for 367 yards.[3] Morrison played in four games for the Browns during the 1972 season before being released on October 11, 1972.[4][3]
Morrison signed with the Cincinnati Bengals on November 1, 1972.[4] He appeared in six games for the Bengals that year but only had one carry.[3] He played three games in 1973, rushing three times for 11 yards and catching a four-yard pass.[3] On January 24, 1974, the Bengals traded quarterback Virgil Carter to the San Diego Chargers for quarterback Wayne Clark.[5] However, after Carter left the Chargers to sign with the Chicago Fire of the World Football League, Morrison was sent to San Diego as compensation on March 7.[5] Morrison was later released by the Chargers.[4]