Puno, a ściślej San Carlos de Puno, założone zostało dokładnie 4 listopada 1668 roku. Niestety, większość starych kolonialnych budynków uległa zniszczeniu. Miasto ma jednak bardzo dobrą bazę hotelowo-gastronomiczną.
Początek współczesnemu miastu dał hiszpański konkwistador Gonzago Jimenez de Quesada zakładając je 6 sierpnia 1538 roku. Nadał mu nazwę Santa Fé de Bacatá, łączącą w jedno miejscową nazwę indiańską i poprzedzającą ją nazwę miejscowości rodzinnej założyciela.