Город был основан 5 августа 1585 года и первоначально назывался Носа-Сеньора-дас-Невис. В 1588 году был переименован в честь короля ИспанииФилиппа II в Филипия-ди-Носа-Сеньора-дас-Невис или просто Филипия. Во время голландской оккупации (1634—1654) город назывался Фредерикштадт в честь принца Оранского Фридриха. С 1817 года город носил название Параиба. Современное название город получил в честь губернатора штата Параиба Жуана Песоа, убитого в 1930 году.
Жуан-Песоа — самый восточный город страны, в 8 км от центра расположен мысСейшас — самая восточная континентальная точка не только Бразилии, но и всей Южной Америки.
Расположен на побережье Атлантического океана, на правом берегу реки Параиба.