Пуйское сельское поселение располагается на севере Вельского района. Большая часть территории муниципального образования расположена в бассейне реки Пуя, в честь которой и оно и получило своё название. Крупнейшие реки — Вага, Пуя, Большая Чурга, Малая Чурга. На территории муниципального образования не имеется крупных озёр, большинство из небольших озёр являются старичными, образованными реками Пуя, Вага и Большая Чурга. Местность довольно плоская, без значимых поднятий, только на северо-востоке муниципального образования располагается возвышенность высотой свыше 200 метров. Равнинный характер территории объясняется наличием рядом крупных рек - Ваги и её левых притоков. На территории сельского поселения находится несколько крупных болот, самое большое из них - Пуйское.
Территория муниципального образования граничит:
- на севере с Шенкурским районом
- на северо-востоке с муниципальным образованием «Попонаволоцкое»
- на востоке с муниципальным образованием «Благовещенское»
- на юге с муниципальным образованием «Судромское» и с муниципальным образованием «Пакшеньгское»
- на западе с муниципальным образованием «Липовское»