La votación se saldó con 400 votos a favor y 175 en contra después de un largo debate sobre permitir o no el matrimonio gay en Inglaterra y Gales.
Unos 140 conservadores votaron en contra del proyecto de Cameron, de su propio partido, mientras la mayoría de los laboristas (oposición) y liberales demócratas (en la coalición de gobierno) lo respaldaron.
Se trata de "un importante paso adelante" que fortalece la sociedad, dijo Cameron, quien apeló a sus compañeros de formación a respaldar la medida.
Las parejas del mismo sexo podrán casarse en ceremonias religiosas, aunque las iglesias no estarán obligadas a celebrar estas ceremonias.
Las uniones civiles son desde hace años una realidad en el país.
El parlamento seguirá discutiendo la propuesta de legislación.