Photons are elementary particles, and particles obeying quatum mechanics and Lorentz transformations..
The classical definition of momentum as $mv$ cannot be used rationally, one has to go to the four vector space of Lorentz transformations to understand how a zero mass particle can have (actually must have if it is to exist at all,) momentum .
The classical $m$ cannot be used because for high velocities the m in the $mv$ is not defined independent of the velocity, so is not invariant in all frames .
The Lorentz four vectors defined as $(E, p_x.p_y,p_z)$ have as a fixed length , the invariant mass of the particle, and it is that mass that enters the definition of the four vector:
$$\sqrt{\mathstrut P\cdot P \rule{1ex}{0pt}} = \sqrt{E^2 - (pc)^2 \rule{1ex}{0pt}} = m_0c^2$$
The length of this 4-vector is the rest energy of the particle. The invariance is associated with the fact that the rest mass is the same in any inertial frame of reference.
If you look at the four vector invariant mass, when the invariant mass is zero, which is the case for the photon, $E=pc$ . Since the photons have energy, they inevitably also have momentum.
This is the mathematics that fits all the data we have on photons and elementary particles, thus the conclusion that photons have zero mass, but do carry momentum
For the classical electromagnetic waves, light, this experiment that measure radiation pressure experimentally measured the momentum of the zillion of photons making up the beam. In particle physics momentum conservation in interactions and decays work correctly only if the momentum of the gamma rays follows the formula above.