Haley was selected by the San Francisco 49ers in the fourth round (96th overall) of the 1986 NFL Draft, after dropping because he initially was timed at 4.8 seconds in the 40-yard dash, although he was later clocked by a 49ers scout at 4.55 seconds. He played outside linebacker in a 3–4 defense, finished second behind Leslie O'Neal for rookies with 12 sacks and was voted to the NFL All-Rookie team by "Pro Football Weekly" and the United Press International. The following year, he played again in a designated pass rusher role, coming into the game in likely passing situations, while making 25 tackles and 6.5 sacks.