Puujoki on noin 35 kilometriä pitkä joki Kanta-Hämeessä Hausjärven ja Janakkalan kuntien alueella. Se alkaa Mommilanjärven eteläpuolella olevasta Ansionjärvestä ja laskee lopulta Kernaalanjärveen. Korkeuseroa on vain kolme metriä, minkä vuoksi joki on herkkä tulvimaan. Puujoessa on yksi pato, Vuolteenkosken pato. Puujoen sivujokia ovat esimerkiksi Hausjoki ja Punkanjoki. Seudulla on paljon soita.