Forbundskansler Angela Merkel stillede konservative frit ved afstemning. Selv stemte hun imod homoægteskaber.
Forbundsdagen i Tyskland har besluttet at legalisere ægteskab mellem folk af samme køn.
Den nye lov er vedtaget med 393 stemmer mod 226.
Afstemningen kom dagen efter, at forbundskansler Angela Merkel sagde, at hun ville stille lovgiverne i sit konservative CDU frit ved afstemningen og lade dem stemme efter deres samvittighed.
Men hun oplyser, at hun selv har stemt imod homoægteskaber.
- For mig er ægteskab grundlæggende mellem en mand og en kvinde, siger hun.
Med vedtagelsen får bøsser og lesbiske i ægteskab samme ret som andre gifte til at adoptere.
Merkel siger, at når det gælder retten til at adoptere, har hun ændret synspunkt. Hun har tidligere været imod homoseksuelle pars ret til adoption, men det er hun ikke længere.
- Jeg har tænkt meget over spørgsmålet om børns trivsel, og jeg er nu kommet til den overbevisning, at par af samme køn skal være i stand til at adoptere.
Tyskland har siden 2001 tilladt registreret partnerskab.
Den nye lov markerer endnu en sejr for homoseksuelles rettigheder i landet. For nylig godkendte Forbundsdagen en plan om at annullere domme mod knap 70.000 homoseksuelle mænd, som i flere årtier efter Anden Verdenskrig blev dømt for at have haft sex med andre mænd.
Der lød jubelråb og blev smidt med konfetti, da det stod klart, at der var flertal i parlamentet for homoægteskaber.
- Jeg vil råde alle ægteskabskontorer til at øge deres mandskab, lød det fra en begejstret Renate Künast fra De Grønne, der i mange år har arbejdet for flere rettigheder til bøsser og lesbiske.
Det tyske overhus har tidligere godkendt en liberalisering. Loven om homoægteskab kan derfor ventes at træde i kraft inden årets udgang.