Born in Beverley, Cosgrove began his career at Wigan Athletic, spending loan spells at Barrow, Chorley, and North Ferriby United. After being released by Wigan, he moved to Carlisle United in August 2017.
On 31 January 2018, he joined Scottish Premiership club Aberdeen. He was sent off on his debut for Aberdeen, a 2–0 defeat against Celtic on 25 February