Puokio sijaitsee Puokiovaaralla Puolangan ja Vaalan välisen seututien 800 varrella noin 20 kilometriä Puolangan kuntakeskuksesta lounaaseen ja noin 35 kilometriä Vaalan kuntakeskuksesta koilliseen. Kylän suurimmat järvet ovat sen länsipuolella sijaitsevat Puokio- ja Piltunginjärvet.