Gregory was born in Peterborough and began his career with local club Peterborough United. In his first season with the "Posh" he made 13 appearances mostly from the bench as he slowly adjusted to life in professional football. He became a useful forward for Peterborough in the Third Division scoring 40 goals in three seasons which attracted the attentions of bigger clubs. He was signed by George Eastham at Stoke City and there was high hopes he would make the step up a division. However he struggled to adapt to the change in level and managed just four goals for the "Potters" in 1977–78 and was sold to Blackburn Rovers in August 1978. Despite scoring four goals in his first six matches for Rovers he was moved on to Bury.
He re-found his scoring form in the third tier scoring 16 times 1978–79 and seven times in 1979–80. He moved to Portsmouth in December 1980 and his six goals helped "Pompey" gain promotion to the Third Division. He scored 15 goals in 1980–81 but he failed to find the target in 1981–82 and left for Welsh side Wrexham. He scored just five goals in 1982–83 as the "Dragons" suffered relegation to the Fourth Division. Wrexham had a poor 1983–84 season as they finished in 20th position but Gregory scored a career best of 20 goals and helped Wrexham to win the Welsh Cup which at the time allowed entrance into European competitions. He played in both legs as Fourth Division, Wrexham over came Portuguese giants FC Porto but Italian side AS Roma proved too strong. He remained at Wrexham until the summer of 1986 and ended his career at with a season at his first club Peterborough United.