Вихованець «Лідс Юнайтед» з рідного міста. У 1965 році він підписав свій перший професійний контракт з клубом, але був лише запасним воротарем до 1972 року, в той час коли «Лідс» виграв Кубок Ліги та Кубок ярмарків у 1968 році, чемпіонат Англії у 1969 році та Кубок ярмарків у 1971 році.
З сезону 1972/73 Гарві став основним воротарем «Лідс Юнайтед», зігравши того сезону 63 гри, включаючи в фіналі Кубка Англії і фінал Кубка володарів кубків, програвши обидва. Наступний сезон «Лідс» розпочав з 29 матчів без поразок, в підсумку вигравши чемпіонат, завдяки чому Гарві таки отримав золоту медаль, на яку він не мав права п'ять сезонів раніше, оскільки не провів тоді достатню кількість матчів.
На початку сезону 1974/75 років зіграв у Суперкубку Англії проти «Ліверпуля», але знову трофей здобув суперник, вигравши в серії пенальті. Пізніше Гарві отримав травму в автокатастрофі і пропустив решту сезону, а його заміняв дублер Девід Стюарт[en], через що Гарві пропустив в тому числі Фінал Кубка європейських чемпіонів 1975 з «Баварією» (0:2). Після відновлення від травми Гарві повернувся до основи, але клуб вже втратив свої лідируючі позиції.
1980 року Гарві перейшов у канадський «Ванкувер Вайткепс», що грав у NASL, але ще одна автомобільна аварія не дозволила Девіду стати основним воротарем і за 3 сезони він провів лише 19 ігор.
На початку 1983 року Гарві повернувся до «Лідс Юнайтед», що на цей час грав вже у другому дивізіоні, і провів у клубі наступні два роки як основний воротар, але повернути команду до еліти не зумів. Гарві провів загалом протягом кар'єри понад 400 матчів за «Лідс Юнайтед»[3] і 1985 року остаточно покинув команду[4].
Надалі Гарві грав за нижчолігові англійські та шотландські клуби, але ніде надовго не затримувався. Завершив ігрову кар'єру у команді «Гаррогейт Таун», за яку виступав протягом 1987 року.
У складі збірної був учасником чемпіонату світу 1974 року у ФРН, на якому провів всі три матчі шотландської збірної, в яких пропустив всього один гол, але цього не вистачило для виходу з групи[5].
Загалом протягом кар'єри у національній команді, яка тривала 5 років, провів у її формі 16 матчів[6].