Ptuj ligger i den slovenske regionen Štajerska (tysk: Untersteiermark) ved Drava, 25 km oppstrøms langs elven fra Maribor.