Urodzony w Barnsley w południowym Yorkshire, Stones przeszedł przez akademię młodzieżową Barnsley, aby podpisać profesjonalną umowę w grudniu 2011 roku. Zadebiutował w pierwszej drużynie w rozgrywkach Championship 17 marca 2012 w przegranym 0-4 meczu z Reading na stadionie Oakwell, zastępując Scotta Wisemana w 52. minucie. 11 sierpnia 2012 zdobył pierwszą bramkę dla swojej drużyny w pucharowym spotkaniu.
Everton
31 stycznia 2013 podpisał 5,5 roczną umowę z Evertonem, a kwota transferu wyniosła ok. 3 mln funtów. Zadebiutował w Evertonie przeciwko Stevenage w drugiej rundzie Pucharu Ligi Angielskiej 28 sierpnia 2013, pomagając odnieść zwycięstwo 2-1 po dogrywce na Goodison Park. Zadebiutował w Premier League jako rezerwowy, zmieniając Stevena Naismitha w wygranym 1:0 meczu z Chelsea 14 września 2013 roku. 1 stycznia 2014 po raz pierwszy znalazł się w wyjściowej jedenastce na mecz ligowy przeciwko Stoke City, zakończony remisem 1:1.
7 sierpnia 2014 podpisał nowy pięcioletni kontrakt z The Toffees do 2019 roku. 5 października doznał kontuzji kostki w meczu z Manchesterem United, eliminując go z gry na około 10-14 tygodni. Pomimo kontuzji, Stones znalazł się w gronie nominowanych do nagrody Golden Boy 2014, wraz z innym skrzydłowym Evertonu Gerardem Deulofeu.
Manchester City
9 sierpnia 2016 Manchester City wykupił Stonesa za 47,5 miliona funtów w ramach sześcioletniej umowy, co uczyniło go drugim najdroższym obrońcą w historii piłki nożnej, za Davidem Luizem[2][3][4][5].
Stones zadebiutował w City cztery dni później, gdy rozpoczęli nowy sezon, wygrywając 2:1 u siebie z Sunderlandem[6]. 6 stycznia 2017 roku zdobył swoją pierwszą bramkę dla Obywateli, w wygranym 5:0 spotkaniu z West Ham United na stadionie London Stadium w trzeciej rundzie Pucharu Anglii. 21 lutego ponownie wpisał się na listę strzelców, w wygranym 5-3 meczu z AS Monako w 1/16 Ligi Mistrzów[7].