Piliakalnis įrengtas aukštumos kyšulyje, kurį iš ŠR juosia Piliaus upelis, iš PV - Pilupis, jų santakoje. Aikštelė trapecinė, pailga ŠV-PR kryptimi, 70 m ilgio, 40 m pločio PR, 19 m pločio ŠV. Joje rasta arbaletinių strėlių antgalių. Iš visų pusių aikštelė buvo apjuosta pylimu. PR aikštelės krašte yra 4 m aukščio, 28 m pločio, 4 m pločio viršuje pylimas. Už jo iškastas 120 m ilgio, 10 m gylio, 50 m pločio griovys 10 m pločio dugnu. ŠR aikštelės krašte pylimas yra 1 m aukščio, 8 m pločio, 1,5 m pločio viršuje. ŠV aikštelės krašte pylimas kūgio formos, 1,2 m aukščio, 19 m pločio. PV aikštelės krašte pylimas niveliuotas ariant. ŠV papėdėje yra 15 m pločio užslinkęs griovys, už kurio supiltas 1 m aukščio, 10 m pločio pylimas. PR papėdėje yra 10 m pločio kelio liekanos. Šlaitai statūs, 16 m aukščio.
Į PR nuo piliakalnio, už griovio, tarp tų pačių upelių slėnių yra papilys (N55°39'26.9";; E25°37'35.6"). Jo aikštelė trapecinė, pailga PR-ŠV kryptimi, 160 m ilgio, 55 m pločio ŠV gale, 130 m - PR gale. Joje aptikta grublėtos ir žiestos keramikos. PR papilio aikštelės gale supiltas 0,5 m aukščio, 8 m pločio pylimas, užsisukantis ir ŠV papilio šlaitu, už kurio iškastas 130 m ilgio, 24 m pločio, 6 m gylio nuo papilio, 4 m gylio iš išorės griovys. Griovio PR šlaitu į papilį V-R kryptimi kyla 1 m pločio terasa - senojo kelio liekana. Šlaitai statūs, 12 m aukščio.
Piliakalnis ir papilys apardyti arimų, jų ŠR šlaitai erodavę į Pilių. Piliakalnio ŠV šlaite įrengti laiptai. Piliakalnis ir papilys dirvonuoja, ŠR šlaitai apaugę medžiais, kurie nuo piliakalnio šlaito nukirsti.
PV ir ŠR piliakalnio papėdėse, 1 ha plote yra papėdės gyvenvietė.
Piliakalnyje stovėjo Užpalių pilis. Užpaliai minimi 1338 m. Pilies papilį 1373 m. kovo mėnesį naktį užpuolė ir sudegino Livonijos ordinas, išžudydamas visus jame buvusius žmones ir išsivesdamas 70 arklių. 1398 m. minimas Užpalių pilies viršininkas. 1433 m. vasario pradžioje pilį sudegino Livonijos ordinas, tačiau ji greitai atstatyta, nes 1448 m. vėl minimas pilies viršininkas, o 1453 m. čia planuota rengti susitikimą dėl sienų su Livonija sureguliavimo.
Piliakalnis datuojamas I tūkst.- XV a.
Pasiekiamas nuvažiavus nuo Užpalių link Dusetų 3,5 km, prieš antrą žvyrkelį, kertantį upelį, keliuku pasukus į dešinę (R), už 600 m, prieš sodybą pakalnėje pasukus į kairę (R) ir paėjus 250 m.
Lit.: Покровский, 1899, c. 98-99; Batūra, 1966b; LAA, p. 162 (Nr. 721); Zabiela, 2001a, p. 54-55; Baranauskas, 2003, p. 68, 91.