Momentum is conserved because of Newton's law, every force has an equal and opposite force. If one object pushes the other for some time with an average force of F, it feel on itself in the other direction the same force F for the same time. Since force is proportional to mass and acceleration, if one is twice the mass of the other, it feels half the acceleration, four times then one fourth etc. Since the acceleration lasts the same time, the velocity times mass stays the same if you consider both of them (eg a five times heavier object's velocity changes five times less, while a five times lighter objects velocity changes five times more, if you multiply momentums together and add them up, they stay the same before and after the collision).
The energy might not be conserved, because as one object collides into the other, it causes deformation and depending on whether the deformation pushes back or stays deformed (increasing heat) the kinetic energy is conserved or not. The momentum is still conserved, because the force needed to cause the deformation is still felt by both of the objects for the same time, but if the deformation is not elastic it uses up some of the potential to do work.