Haworth a commencé sa carrière dans la LNH en 1980-1981. Il fait une bonne première saison avec Buffalo car il est nommé la recrue de l’année chez les Sabres. Deux ans plus tard en 1982, les Sabres l’échange à Washington contre des choix au prochain repêchage. C’est dans cette équipe qu’il obtient ses meilleures saisons en carrière avec un sommet de 34 buts et de 73 points en 1986. L’année suivante, il est impliqué dans une transaction majeure avec les Nordiques de Québec. Il est échangé avec son coéquipier Gaétan Duchesne à ses derniers en retour d’un des joueurs-vedettes des Nordiques, Dale Hunter. L’échange fait une commotion à Québec. Cet échange inclut le premier choix de Washington au repêchage de 1987. Les Nordiques sélectionnent Joe Sakic. Après une seule saison à Québec où il se débrouille bien, il quitte la LNH pour aller jouer en Suisse avec le CP Berne. Il connaît là-bas de très bonnes saisons étant le meilleur pointeur de son équipe durant deux saisons et remportant trois championnats de Suisse.
En 1989 il est échangé au North Stars du Minnesota contre les droits du « Démon blond », Guy Lafleur. Il n’évoluera pas avec cette équipe.