In 1984, Holland was selected to his only All-Star Game but did not play. He was involved in a pair of trades during the 1985 campaign. The first one on April 20 had him returning to the Pirates along with minor-league left-handed pitcher Frankie Griffin from the Phillies for Kent Tekulve.[6] Then he was dealt along with John Candelaria and George Hendrick from the Pirates to the Angels for Pat Clements and Mike Brown on August 2 in a transaction that was completed two weeks later on August 16 when Bob Kipper was sent to Pittsburgh.[7][8] He then hit a low point by being called to testify at the Pittsburgh drug trials. After admitting to cocaine abuse, he was suspended for sixty days of the 1986 season.
Holland's and ten other players' suspensions were reduced to anti-drug donations and community service, but Holland's career was nearly at an end. He was signed as a free agent by the New York Yankees, released by the Yankees, re-signed by the Yankees and then re-released by the Yankees — all in 1986. The Yankees signed him for the third time in 1987 but, after three games, his earned run average (ERA) was at 14.21. Holland was released by the Yankees a third time after the season and his major league career was over.