As a young striker, Freestone joined Middlesbrough from Nottinghamshire club Arnold Town of the Northern Counties (East) League midway through the 1994–95 season. Before joining Boro for a small fee he had netted 54 goals for Arnold Town and had trials with Leeds United, Nottingham Forest, Notts County and Chesterfield. Fast and confident, he had averaged almost a goal a game for Boro reserves in two seasons since joining. Freestone scored on his full first team debut in the 3–1 win over Sheffield Wednesday in April 1996. His only other goal for Boro came in the League Cup against Barnet in September 1997. He was also on the pitch as a late substitute as Boro confirmed their spot in the 1997 FA Cup Final with a semi final replay victory over Chesterfield, however he was left out of the final match day squad altogether as they lost 2–0 to Chelsea. After a loan spell, Freestone joined Northampton in December 1997. The highlight of his time at Northampton was scoring two goals against Premier League side West Ham United in the 1998–99 League Cup. Freestone's brace in the first leg gave Northampton a 2–0 lead going into the second leg, in which West Ham were only able to muster a 1–0 win with a Frank Lampard goal meaning that Northampton knocked out their illustrious opponents. After leaving Northampton, Freestone had spells at Hartlepool and Cheltenham before signing for Shrewsbury Town. At Shrewsbury he failed to score in the league but did score once in the League Cup against Preston North End and once in the FA Cup against former club Cheltenham.