Many important biological and chemical processes are initiated by the transfer of a proton from a donor to an acceptor group within a molecule and are regulated by the interplay of nuclear and electronic dynamics. The electronic dynamics of proton transfer are well-studied, yet the nuclear dynamics have never been spatiotemporally resolved. Herein, we present a direct observation of the nuclear motions leading to and ensuing from photochemical proton transfer in o-nitrophenol using ultrafast electron diffraction. The proton transfer step is identified by the transient compression of the donor-acceptor distance and captured on the femtosecond timescale with sub-Angstrom resolution. Supported by ab initio multiple spawning simulations, our observations uncover the structural changes mediating excited-state relaxation. Our work provides an unprecedented mechanistic insight into the photochemical proton transfer mechanism and photo-relaxation dynamics of o-nitrophenol, unambiguously connecting an experimental observable to a process previously confined to theoretical models.